我已创建和MVC 4 Web应用程序,并决定在此应用程序中使用web api.
我正在为MVC web应用程序使用ninject依赖解析器.现在我想对web api使用这个ninject依赖解析器.
但是这里提出的问题mvc IDependencyResolver名称空间是:使用System.Web.Mvc
和web api IDependencyResolver正在使用System.Web.Http.Dependencies
我正在为MVC web应用程序使用ninject依赖解析器.现在我想对web api使用这个ninject依赖解析器.
但是这里提出的问题mvc IDependencyResolver名称空间是:使用System.Web.Mvc
和web api IDependencyResolver正在使用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;
解决方法
有一种方法可以在MVC和ASP.NET Web API之间共享相同的容器.
您只需要实现两个接口.
您只需要实现两个接口.
public class NinjectDependencyResolver : NinjectDependencyScope,IDependencyResolver,System.Web.Mvc.IDependencyResolver { private readonly IKernel kernel; public NinjectDependencyResolver(IKernel kernel) : base(kernel) { this.kernel = kernel; } public IDependencyScope BeginScope() { return new NinjectDependencyScope(this.kernel.BeginBlock()); } }
查看本文寻求解决方案:
Simple Way to share Dependency Resolvers between MVC and Web API
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。