在ASP.NET MVC中,我们可以使用默认的依赖解析器来解析具体类型,而无需编写任何DI代码。下面是一个示例:
public class HomeController : Controller
{
private readonly IService _service;
public HomeController(IService service)
{
_service = service;
}
// ...
}
protected void Application_Start()
{
// ...
DependencyResolver.SetResolver(new DefaultDependencyResolver());
// ...
}
public class DefaultDependencyResolver : IDependencyResolver
{
public object GetService(Type serviceType)
{
if (serviceType == typeof(IService))
{
return new Service();
}
// 如果没有找到具体类型,返回null
return null;
}
public IEnumerable
使用这种方法,当控制器被实例化时,MVC框架将自动使用默认的依赖解析器来解析具体类型,并将其传递给控制器的构造函数。