设想
我正在尝试将我现有的更改HttpClient
为IHttpClientFactory
. 当我验证现有代码时,它使用 using{...} 语句会导致问题,并在此处提及。所以我想到了实现单例 Http 客户端并找到了另一个与此相关的博客,它就在这里。
从所有这些中,我了解到最好的一个是IHttpClientFactory
在 .NET Core 中引入的。
实施计划
由于这个应用程序在 ASP.NET MVC 4 中并且不使用 DI,所以我必须做一些事情才能在没有 DI 框架的情况下使用。根据我的搜索,从 StackOverflow 获得了答案,并计划以相同的方式实施。同时,我还得到了另一个项目,它已经删除了所有依赖项,可以在早期项目中使用而无需做所有事情。回购是HttpClientFactoryLite
.
问题
现在我可以HttpClientFactoryLite
通过初始化这个类来使用吗?该描述还提到它可以与现有的 DI 框架一起使用,以便ClientFactory
可以注册为单例。请从自述文件中找到措辞
using HttpClientFactoryLite;
var httpClientFactory = new HttpClientFactory(); //bliss
如果您使用依赖注入,请确保将 IHttpClientFactory 注册为单例。
在我的场景中,我没有添加任何 DI 框架。所以我要在需要的地方初始化工厂。在这里,我对两件事感到困惑
是否有必要为 做一个单例类
HttpClientFactoryLite
?这个
HttpClientFactory
类是如何处理的?是否需要将其作为控制器的一部分或相同的 using 语句等处理?基于this的答案,
Microsoft.Extensions.Http
仅提供HttpClientFactory,而不是新优化的HttpClient。这仅在 .NET Core 2.1 中可用。那么实现 IHttpClientFactory 有什么不同吗?
请指教