Autofac IOC

Autofac会提供3种生命周期当我们,支持.NET和.NET CORE

1.Instance Per Dependency

推荐

每次都会返回一个新的实例,并且这是默认的生命周期。

Autofac IOC - 图1

2、Instance Per Lifetime Scope

推荐

在同作用域,服务每个请求只创建一次。

Autofac IOC - 图2

3、Single Instance

不推荐 ,这种模式很容易出问题

静态的 ,所有请求一个实例

Autofac IOC - 图3

单例模式下的常见错误用法 ,该代码只有在Singleton模式下才会有问题**

Autofac IOC - 图4

如果你非要用 Single Instance模式你的代码就需要用出调整:

Autofac IOC - 图5

改成这样你就能用单例模式了,不过还是不推荐用单例模式

.NET Core 3.x mvc 使用Autofac

如果没用过Autofac IOC的我们从零开始学起

1、创建MVC项目

默认MVC是不支持路由的,需要在Startup.cs里面加入

Autofac IOC - 图6

然后删除自带的Pages

在根目录创建Controllers文件夹和Views文件夹

2、配置Autofac

2.1 安装Nuget

Autofac和

Autofac.Extensions.DependencyInjection

2.2 修改Program

Autofac IOC - 图7

2.3 修改Startup

Autofac IOC - 图8

3、控制器里面使用注入

Autofac IOC - 图9

BLL层定义一个类

Autofac IOC - 图10