如何解决在.NET Core 3.0中在ConfigureService中注册并在Autofac ConfigureContainer方法中使用的服务

时间:2019-11-19 08:00:04

标签: c# autofac .net-core-3.0

我在这里面临的挑战是解决我在IHttpContextAccessor方法中注册的ConfigureServices服务,并使用它在ConfigureContainer方法中向Autofac注册实例。但是,通过在.net core 3.0中使用Autofac的新方法,我发现这样做确实具有挑战性。我尝试的方法如下;

        public void ConfigureContainer(ContainerBuilder builder)
        {
            var container = builder.Build();

            var httpContextAccessor = container.Resolve<IHttpContextAccessor>();
            var executionContextAccessor = new ExecutionContextAccessor(httpContextAccessor);

            ServicesAutofacExtensions.RegisterServicesWithAutofac(executionContextAccessor, Configuration, _loggerForApi);
        }

但是我跑步时会抛出此错误

  

访问Microsoft.Extensions.Hosting时发生错误   服务。没有应用程序服务提供商就继续进行。错误:   Build()或Update()只能在ContainerBuilder上调用一次。

现在我在文档中知道,它说ContainerBuilder不应以这种方法构建,因为工厂会自动处理此问题。但是,然后我该如何解析IHttpContextAccessor以在ConfigureContainer中使用它呢? 我已经搜索并研究了可能的解决方案,但没有找到。请帮忙。

0 个答案:

没有答案