Asp.net-Mvc-4
對 MVC 和 WebAPI 使用 ninjectdependecyResolver
我已經創建了 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;
有一種方法可以在 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()); } }查看這篇文章以獲取解決方案: 在 MVC 和 Web API 之間共享依賴解析器的簡單方法