gpt4 book ai didi

asp.net-mvc - MVC 3 依赖解析器还是 Ninject MVC 插件?

转载 作者:行者123 更新时间:2023-12-03 21:19:31 26 4
gpt4 key购买 nike

在 MVC 3 中,他们添加了我一直在使用的依赖解析器。在回答某人对您发表评论的问题时,您应该使用 Ninject MVC 3 插件。

所以我的问题是为什么要使用它而不是内置的?如果这是要走的路,你如何设置它?

Question

以上是我回答的问题的链接。

最佳答案

ASP.NET MVC 3 提供了一个依赖注入(inject)服务,它将 Hook 到您选择实现的任何依赖解析器。 Ninject MVC 3 插件的功能非常简单,因为它所要做的就是实现 System.Web.Mvc.IDependencyResolver 中定义的类型解析方法。并调用适当的 Ninject 方法以返回请求的类型。

无论您选择使用自己的 IDependencyResolver 并将其映射到 Ninject(或任何其他依赖注入(inject)框架),还是选择使用免费提供的 Ninject MVC 3 插件,都只是一个微不足道的区别。

下面是一个功能齐全的示例,展示了与 Ninject 兼容的手动 IDependencyResolver 的外观。 Ninject MVC 3 插件基本上非常相似:

public class NinjectDependencyResolver : IDependencyResolver
{
private readonly IKernel _kernel;

public NinjectDependencyResolver(IKernel kernel) {
_kernel = kernel;
}

public object GetService(Type serviceType) {
return _kernel.TryGet(serviceType, new IParameter[0]);
}

public IEnumerable<object> GetServices(Type serviceType) {
return _kernel.GetAll(serviceType, new IParameter[0]);
}
}

这里的关键点是 ASP.NET MVC 不提供成熟的依赖注入(inject)框架 ;它仅提供通过 IoC 容器(即 Ninject)在整个 ASP.NET MVC 请求管道( Controller 解析、 View 解析等)的特定点检索所需类型实例所需的层。

注意:如果我使用的任何术语不太准确,请告知我。

关于asp.net-mvc - MVC 3 依赖解析器还是 Ninject MVC 插件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5160084/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com