转自:https://www.cnblogs.com/yaopengfei/p/9479268.html
一. 说在前面的话
凡是大约工作在两年以上的朋友们,或多或少都会接触到一些框架搭建方面的知识,只要一谈到框架搭建这个问题或者最佳用法这个问题,势必会引起一点点小小的风波,我说我的好,他说他的好,非常容易骂架,所以在本节乃至该系列我仅仅是总结了一下自己日常中的一些用法,谈一下自己浅陋的见解,谈不上最佳,只要不误导新手 能有点帮助作用就可以了,如您不喜欢,请“右上角 谢谢”。
在框架搭建过程中,在层与层的解耦方面,势必会涉及到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
③ 最新版本: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 UserBLL : IUserBLL,IPeopleBLL
2 {
3 /// <summary>
4 /// 获取用户信息
5 /// </summary>
6 /// <returns></returns>
7 public string GetUserInfor()
8 {
9 return "我是获取用户信息的方法";
10 }
11
12 /// <summary>
13 /// 自我介绍
14 /// </summary>
15 /// <returns></returns>
16 public string Introduce()
17 {
18 return "我是ypf";
19 }
20 }