.NET Core 中IOC框架AutoFac的使用详解

IOC框架-AutoFac的使用

基于之前的.net Core原生DI 的使用 虽然也能自己通过反射程序集来实现批量注入的功能
但是还有很多强大的扩展功能是没有的例如面向切面的拦截等
所以今天简单讲一下市面上使用非常多的IOC框架:AutoFac的使用
首先需要引入两个包:
.NET Core 中IOC框架AutoFac的使用详解
版本自行选择。

需要强调一点的是.net Core 3.0之后的写法有些改变 我之前使用2.0版本Core 写的AutoFac框架的使用 需要在ConfigureServices中修改返回值。
但是在3.0版本的Core中是不支持IServinceProvider返回值的。大家使用时还需更新自己的Core版本或者使用原来老的AutoFac的写法
开始正题:

将两个包引入今来之后
首先你需要将自己的接口和实现类准备好
接口:
.NET Core 中IOC框架AutoFac的使用详解

实现类:
.NET Core 中IOC框架AutoFac的使用详解
在这里我只用这两个当作示例:
后面还有DoMain层和仓储层
我这里就不贴出来了
准备好准备工作之后,有两种选择方式 一种类似于原生的DI 写法 逐个注入进去。
一种是利用程序集加载 批量注入进去
.NET Core 中IOC框架AutoFac的使用详解

在一步我们还只是做了将接口和类注入到了容器中但是在项目中还是不能使用的
还需要添加一步
.NET Core 中IOC框架AutoFac的使用详解
这一步非常重要,不加则无法使用
这个就是3.0以及之后版本的.NET Core 和之前版本的写法的不同
之前需要修改ConfigureServices方法的返回值。
3.0之后的版本则不需要
只需要在这里添加一句话则可以。
使用的方式还是用构造函数的方式注入
.NET Core 中IOC框架AutoFac的使用详解
数据返回正常:
.NET Core 中IOC框架AutoFac的使用详解

补充一下:AutoFac同样也支持 服务的生命周期选择和我上一篇文章一样 有兴趣的朋友可以点击 https://editor.csdn.net/md/?articleId=105990739 查看