一. 说在前面的话
在框架搭建过程中,在层与层的解耦方面,势必会涉及到IOC框架,.Net 平台下我用过的IOC框架主要是: Spring.Net 、Unity、AutoFac,当然还有Castle(我没用过,就不发表任何评论了), 在用过的IOC框架中,Spring.Net 相对很老了,貌似在2015年就不在更新了,但基本的功能也够用了。 现阶段用的最多的就是Unity和AutoFac了,版本更新也比较快,Unity大约一年前写过两篇文章了,本次在该框架系列也会考虑更新一下Unity,本节主要介绍一下AutoFac的几个基本用法。
先说一下两个概念IOC和DI,我的理解:
① IOC:调用者不再创建(不自己new)被调用者的实例,而是交给容器去创建(AutoFac就充当这里的容器),这就是控制反转。
② DI:容器创建好的实例再注入调用者的过程,就是依赖注入(比如:属性注入、构造函数注入等)。
AutoFac的信息:
① 官网地址:https://autofac.org/
② 官方文档:http://autofac.readthedocs.io/en/latest/index.html (英文) https://autofaccn.readthedocs.io/zh/latest/ (中文)
③ 最新版本:4.8.1 (截止2018-08-21)
本节的内容主要包括:
1. 在使用IOC框架之前的几种创建对象的方式。
2. AutoFac的基本用法和几种生命周期。
3. AutoFac和Asp.Net MVC5进行整合,利用属性的方式进行注入。
事先说明一下本节要用到的实现类和接口类:
(1). Ypf.BLL层中包括:CatBLL、DogBLL、RoleBLL、UserBLL。
1 public class CatBLL : IAnimalBLL 2 { 3 public string Introduce() 4 { 5 return "我是猫"; 6 } 7 }
1 public class DogBLL : IAnimalBLL 2 { 3 public string Introduce() 4 { 5 return "我是狗"; 6 } 7 }