施工初始化VS Dependndncy注射?

时间:2015-06-26 23:34:52

标签: asp.net-mvc-4

我是非常新的依赖,所以你能解释一下,如果不使用IOC容器(如Ninject,Unity,Autofac等)可以实现依赖注入。当需要这些插件时以及何时可以使用这些IOC容器完成

private readonly IModelFactory _modelFactory;
        private readonly IStatsService _service;

        protected BaseApiController( IModelFactory modelFactory, IStatsService statsService ) {
            _modelFactory = modelFactory;
            _service = statsService;
        }

1 个答案:

答案 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框架将在实例化控制器时自动注入依赖类。