Autofac ContainerBuilder.Populate() 不会接受 ServiceCollection

问题描述 投票:0回答:1

我正在尝试执行以下操作,以便可以将 HttpClient 配置添加到服务集合中。这是一个 .NET 4.8 Windows 服务应用程序。我收到如图所示的错误。我怎样才能做到这一点?

            var builder = new ContainerBuilder();
            builder.RegisterType<MyService>();
            var services = new ServiceCollection();
            builder.Populate(new ServiceCollection().AddHttpClient("TheApiClient", client =>
            {
                client.BaseAddress = new Uri("https://catfact.ninja");
                client.DefaultRequestHeaders.Add("Accept", "application/json");
            }));
            var container = builder.Build();

dependency-injection autofac
1个回答
0
投票

AddHttpClient
方法是一个
IHttpClientBuilder
对象,并且您尝试将其传递给
Populate
方法,而不是传递
ServiceCollection
。将您的代码更改为以下内容:

var builder = new ContainerBuilder();
builder.RegisterType<MyService>();
var services = new ServiceCollection();
services.AddHttpClient("TheApiClient", client =>
{
    client.BaseAddress = new Uri("https://catfact.ninja");
    client.DefaultRequestHeaders.Add("Accept", "application/json");
})
builder.Populate(services);
var container = builder.Build();
© www.soinside.com 2019 - 2024. All rights reserved.