Autofac RegisterType for UsingConstructor 继承自构造函数参数类型

Autofac RegisterType for UsingConstructor that inherits from the constuctor parameter type

有没有办法告诉 Autofac 使用从构造函数中使用的 class 继承的 RegisteredType 解析构造函数参数?

我需要在 HttpClient 的构造函数中使用 HttpClientHandler,但我也需要 HttpClientHandler 来访问 GetCookies...如果我将处理程序注册为 HttpMessageHandler,它会正确创建 HttpClient,但我必须将 HttpMessageHander 转换为 HttpClientHandler,感觉像是 hack;有更好的方法吗?

builder.RegisterType<HttpClientHandler>().As<HttpMessageHandler>().SingleInstance();

builder.RegisterType<HttpClient>().UsingConstructor(typeof(HttpMessageHandler)).SingleInstance();

我还没有编写完整的测试,但我认为您可以将 AsSelf() 插入到您的 HttpClientHandler 注册中。

builder.RegisterType<HttpClientHandler>()
       .As<HttpMessageHandler>()
       .AsSelf()
       .SingleInstance();

所以当我解决时,这些毫无问题地回来了: var 容器 = builder.Build();

        var handler = container.Resolve<HttpClientHandler>();
        var client = container.Resolve<HttpClient>();