【发布时间】:2014-01-16 09:46:22
【问题描述】:
我已经创建了 MVC 4 Web 应用程序,并决定在这个应用程序中使用 Web api。
我正在为 MVC Web 应用程序使用 ninject 依赖解析器。现在我想为 web api 使用这个 ninject 依赖解析器。
但是这里提出的问题 mvc IDependencyResolver 命名空间是:using System.Web.Mvc
和 web api IDependencyResolver 是using System.Web.Http.Dependencies
那么我该如何解决这个问题呢?
最后我想要这样的东西:
// Use the container and the NinjectDependencyResolver as
// application's resolver
var resolver = new NinjectDependencyResolver(container);
//Register Resolver for MVC
DependencyResolver.SetResolver(resolver);
//Register Resolver for Web Api
GlobalConfiguration.Configuration.DependencyResolver = resolver;
【问题讨论】:
-
Web API 依赖解析器是一个与 MVC 的依赖解析器完全不同的接口。您必须为 Web API 创建另一个类。
-
我觉得应该有办法,pattrn。诸如适配器之类的东西。因为他们的界面中有一些通用的方法!
-
解决方法很简单,创建一个实现
System.Web.Mvc.IDependencyResolver和System.Web.Http.IDependencyResolver接口的类。
标签: asp.net-mvc-4 asp.net-web-api ninject dependency-resolver