本篇文章主要介绍了"利用MVC、Unity将Service实现Restful",主要涉及到restful,service方面的内容,对于软件工程感兴趣的同学可以参考一下:
现在移动设备端的需求越来越大,要满足其数据要求的一种方式就是实现Restful,脱离具体的后台支持方式。在微软的实现方式中,我们需要利用VS建立web API项...
现在移动设备端的需求越来越大,要满足其数据要求的一种方式就是实现Restful,脱离具体的后台支持方式。在微软的实现方式中,我们需要利用VS建立web API项目,利用 System.Web.Http就可以实现将自己的控制发布出来。 public class OutValuesController : ApiController
{
// GET api/values
public IEnumerable Get()
{
return new string[] { "value1", "value2" };
}
// GET api/values/5
public string Get(int id)
{
return "value";
}
// POST api/values
public void Post([FromBody]string value)
{
}
// PUT api/values/5
public void Put(int id, [FromBody]string value)
{
}
// DELETE api/values/5
public void Delete(int id)
{
}
}
这种实现方式下需要继承ApiController,这个在很多已经有很多Service的系统中难以实现,另外对controller、Service有限制。
介绍两种利用MVC、Unity以及反射 实现的对Service的进行Restful。
第一种修改Microsoft.Web.Mvc实现;
首先利用一个Controller实现Restful,修改它的ActionInvoker来将调用拦截下来。
public class ApiHelperController : Controller
{
//微软的ControllerActivator激活Controller时,执行的就是无参数的构造函数!
public ApiHelperController()
{
base.ActionInvoker = new MyActionInvoker();
}
}
然后,下面比较乱了,总体就是从Controllercontext中获取Controller、method的名称,利用Unity根据Controller的名称来取得实例,利用反射直接调用invoke,将result 用Json来实现。