我用asp.net-mvc看到there is an extension for Ninject integration但看起来我可以将Ninject与没有这个扩展名的mvc合并。例如:
public class NinjectDependencyResolver : IDependencyResolver
{
private readonly IResolutionRoot _resolutionRoot;
public NinjectDependencyResolver(IResolutionRoot resolutionRoot)
{
_resolutionRoot = resolutionRoot;
}
public object GetService(Type serviceType)
{
return _resolutionRoot.TryGet(serviceType);
}
public IEnumerable<object> GetServices(Type serviceType)
{
return _resolutionRoot.GetAll(serviceType);
}
}
public class MvcApplication : HttpApplication
{
void Application_Start()
{
var modules = new INinjectModule[] { new ServiceModule() };
var kernel = new StandardKernel(modules);
DependencyResolver.SetResolver(new NinjectDependencyResolver(kernel));
这是一些遗留扩展还是仍然相关?我看到源代码的最新更新,所以我有点困惑
答案 0 :(得分:5)
您可以实现自己的依赖关系解析器。所以是的,你不需要它。你可以很容易地集成Ninject而不需要扩展。但问题是你为什么要这样做? Ninject.MVC3扩展提供了添加对Ninject的支持的所有内容,而无需实现自己的依赖关系解析器。这有几个好处: