我是非常新的依赖,所以你能解释一下,如果不使用IOC容器(如Ninject,Unity,Autofac等)可以实现依赖注入。当需要这些插件时以及何时可以使用这些IOC容器完成
private readonly IModelFactory _modelFactory;
private readonly IStatsService _service;
protected BaseApiController( IModelFactory modelFactory, IStatsService statsService ) {
_modelFactory = modelFactory;
_service = statsService;
}
答案 0 :(得分:0)
当然可以。你提到的DI容器让你的生活更轻松,但他们所做的基本归结为:
IModelFactory modelFactory = new MyModelFactory();
IStatsService statsService = new MyStatsService();
var myController = new SomeController(modelFactory, statsService);
DI容器对他们有一些好处:繁重的工作是为你完成的(聪明的人已经开始工作了!),你在一个地方指定了你希望如何管理你的依赖关系,它是什么东西其他开发者可能已经看过了。
要将ASP.NET MVC与DI容器集成,插件已经存在。例如,模式&微软的实践团队制作了Unity.Mvc,这是一个将Unity与ASP.NET MVC基础架构集成在一起的小插件。执行此操作时,MVC框架将在实例化控制器时自动注入依赖类。