我试图在完整的Framework4.7(非核心)中注册IHttpClientFactory。我使用的是IoC容器(LightInject)
问题是,我无法直接访问内部类DefaultHttpClientFactory https://github.com/dotnet/runtime/blob/master/src/libraries/Microsoft.Extensions.Http/src/DefaultHttpClientFactory.cs的实现--这个类是不可见的,因为它不是公共的。我找到了第三方实现的解决方案-- https://github.com/uhaciogullari/HttpClientFactoryLite,它使用自己的接口。
是否可以将接口IHttpClientFactory与IoC用于完整框架(而不是.net核心)?
如果可能的话,在注册IHttpClientFactory期间,我可以使用哪个类作为IoC的实现?
发布于 2020-12-03 09:11:21
正如在这个github问题中所建议的那样,您可以使用以下内容:
var serviceProvider = new ServiceCollection().AddHttpClient().BuildServiceProvider();
container.RegisterInstance(serviceProvider.GetService<IHttpClientFactory>());
container.ContainerScope.RegisterForDisposal(serviceProvider);AddHttpClient 寄存器 DefaultHttpClientFactory for IHttpClientFactory此示例使用SimpleInjector,但相同的概念可应用于任何其他DI框架。
https://stackoverflow.com/questions/65117044
复制相似问题