在.Net Core3.1中
Autofac引入按照之前的Autofac在.Net Core3.1下的使用
可以在StartUp中定义
//autofac 新增
public ILifetimeScope AutofacContainer { get; private set; }
然后在Configure方法中获取
//设置autofac// A.直接使用app.ApplicationServices.GetAutofacRoot()获取ioc容器 会与Aop模块AspectCore冲突//this.AutofacContainer = app.ApplicationServices.GetAutofacRoot();// B.采取app.ApplicationServices.CreateScope().ServiceProvider.GetAutofacRoot()获取this.AutofacContainer = app.ApplicationServices.CreateScope().ServiceProvider.GetAutofacRoot();
这边就可以获取到AutofacContainer然后可以提供到其他地方进行解析服务
这边有个问题如果有使用AspectCore
引入AspectCore.Extensions.Autofac
然后注册时如下
//注册AspectCore
builder.RegisterDynamicProxy();
这样上面方法A会报错有冲突
改为方法 B就可以了