public class NinjectDependencyResolver : DependencyResolver { private IKernel kernal;
public NinjectDependencyResolver() { kernal = new StandardKernel(); AddBindings(); }
public object GetService(Type serviceType) { return kernal.TryGet(serviceType); }
public IEnumerable
更改全局文件如下:
public class MvcApplication : System.Web.HttpApplication { protected void Application_Start() { AreaRegistration.RegisterAllAreas();
DependencyResolver.SetResolver( new NinjectDependencyResolver()); WebApiConfig.Register(GlobalConfiguration.Configuration); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); } }
关于“DependencyResolver.SetResolver( new NinjectDependencyResolver());”我收到错误的这一行:
he type EssentialTools.Infrastructure.NinjectDependencyResolver does not appear to implement Microsoft.Practices.ServiceLocation.IServiceLocator.
参数名称:commonServiceLocator
请帮帮我,我该如何解决这个错误。
Cảm ơn trước.
câu trả lời hay nhất
一年后,我遇到了同样的问题......感谢pdb的回答,我找到了解决方法。在自定义的 NinjectDependencyResolver 中强制使用 System.Web.Mvc.IDependencyResolver thay vì System.Web.Http.DependencyResolver 在其他情况下会导致转换问题部分代码需要 System.Web.Http.Dependencies.IDependencyResolver。例如,当您尝试概括自定义 DI 时:
GlobalConfiguration.Configuration.DependencyResolver = new NinjectDependencyResolver(kernel)
在我的例子中,我实现了 IDependencyResolver 并且它的工作方式如下:
public class NinjectDependencyResolver : NinjectDependencyScope , IDependencyResolver , System.Web.Mvc.IDependencyResolver
Tôi là một lập trình viên xuất sắc, rất giỏi!