相关疑难解决方法(0)

Autofac 无法解析类型化 HttpClient 的枚举

我有许多服务需要使用来自 HttpClientFactory 的类型化 HttpClient。虽然我可以解析一项服务,但我无法解析该服务的 IEnumerable。

interface IMyHttpClient
{
}

class MyHttpClient: IMyHttpClient
{
    public MyHttpClient(HttpClient client)
    {
    }
}

class Program
{
    static void Main(string[] args)
    {
        var services = new ServiceCollection();
        services.AddHttpClient()
                .AddHttpClient<IMyHttpClient, MyHttpClient>();

        var builder = new ContainerBuilder();
        // Exception goes away when remove this line
        builder.RegisterType<MyHttpClient>().As<IMyHttpClient>();
        builder.Populate(services);
        var provider = builder.Build();

        // ============== This works
        // provider.Resolve<IMyHttpClient>();

        // ============== This throws exception
        provider.Resolve<IEnumerable<IMyHttpClient>>();
    }
}
Run Code Online (Sandbox Code Playgroud)

构造函数将被调用一次,然后抛出异常:

``` DependencyResolutionException:在类型“ConsoleApp2.MyHttpClient”上找不到任何带有“Autofac.Core.Activators.Reflection.DefaultConstructorFinder”的构造函数可以使用可用的服务和参数调用:无法解析参数“System.Net.Http.HttpClient”构造函数 'Void .ctor(System.Net.Http.HttpClient)' 的客户端'。

``

问题是 AddHttpClient 添加了它自己的 IMyHttpClient 注册。但我只想使用 …

autofac httpclientfactory

2
推荐指数
1
解决办法
3305
查看次数

标签 统计

autofac ×1

httpclientfactory ×1