当前位置: 代码迷 >> 综合 >> .Net Core3.1 Autofac在获取ioc容器进行解析
  详细解决方案

.Net Core3.1 Autofac在获取ioc容器进行解析

热度:7   发布时间:2024-01-11 21:43:29.0

在.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就可以了