ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码
当前位置:首页 >> 软件工程 >> 利用MVC、Unity将Service实现Restful

利用MVC、Unity将Service实现Restful(1/2)

来源:网络整理     时间:2016-05-10     关键词:restful,service

本篇文章主要介绍了"利用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来实现。

相关图片

相关文章