asp.net mvc中的IDependencyResolver

Sha*_*ari 2 asp.net-mvc

我在MVC(christianbook)中读了一个关于IDependencyResolver的回合,但我不知道mvc中究竟是什么DependencyResolver?

有人可以解释这些方法吗?

Dar*_*rov 5

它允许实现对控制器和其他组件的依赖注入.布拉德威尔逊写了一篇关于它的好文章.例如,当您实现一个能够返回给定类型的正确实现的自定义依赖项解析程序时,您可以让ASP.NET MVC控制器将抽象依赖项或接口作为构造函数参数:

public class HomeController: Controller
{
    private readonly ISomeService _someService;
    public class HomeController(ISomeService someService)
    {
        _someService = someService;
    }

    ... some actions
}
Run Code Online (Sandbox Code Playgroud)

如果你编写了自定义依赖关系解析,它将能够在实例化控制器时注入适当的接口实现.

依赖注入允许应用程序的不同层之间的耦合较弱,并使它们更容易单独进行单元测试.