gpt4 book ai didi

inversion-of-control - 用于完整框架 (4.7) 和 IoC 的 IHttpClientFactory

转载 作者:行者123 更新时间:2023-12-05 04:55:56 27 4
gpt4 key购买 nike

我正在尝试在 Full Framework 4.7(非核心)中注册 IHttpClientFactory。我正在使用 IoC 容器 (LightInject)

问题,我无法直接访问内部类 DefaultHttpClientFactory 的实现 https://github.com/dotnet/runtime/blob/master/src/libraries/Microsoft.Extensions.Http/src/DefaultHttpClientFactory.cs这个类是不可见的,因为它不是公开的。我找到了作为第 3 方实现的解决方案 - https://github.com/uhaciogullari/HttpClientFactoryLite, 它使用自己的接口(interface)。

是否可以将接口(interface) IHttpClientFactory 与 IoC 一起用于完整框架(不是 .net 核心)?

如果可能,我可以在 IoC 注册期间使用哪个类作为 IHttpClientFactory 的实现?

最佳答案

正如 this github issue 中所建议的那样你可以使用这个:

var serviceProvider = new ServiceCollection().AddHttpClient().BuildServiceProvider();
container.RegisterInstance(serviceProvider.GetService<IHttpClientFactory>());
container.ContainerScope.RegisterForDisposal(serviceProvider);
  • AddHttpClient registers DefaultHttpClientFactoryIHttpClientFactory
  • 然后就可以从DI容器中取回了

此示例使用 SimpleInjector,但相同的概念可以应用于任何其他 DI 框架。

关于inversion-of-control - 用于完整框架 (4.7) 和 IoC 的 IHttpClientFactory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65117044/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com