我在MVC(christianbook)中读过一个关于IDependencyResolver的内容,但我不知道mvc中究竟是什么DependencyResolver?
有人可以解释一下这些方法吗?
答案 0 :(得分:5)
它允许在控制器和其他组件中实现依赖注入。布拉德威尔逊写了一篇关于它的nice article。例如,当您实现一个能够返回给定类型的正确实现的自定义依赖项解析程序时,您可以让ASP.NET MVC控制器将抽象依赖项或接口作为构造函数参数:
public class HomeController: Controller
{
private readonly ISomeService _someService;
public class HomeController(ISomeService someService)
{
_someService = someService;
}
... some actions
}
如果您编写了自定义依赖项解析,则可以在实例化控制器时注入正确的接口实现。
依赖注入允许应用程序的不同层之间的耦合较弱,并使它们更容易单独进行单元测试。