1

我有一个类型化的 HttpClient 和(比方说)另一个使用 IHttpClientFactory 来获取 HttpClient 实例的服务/类。

要注册 IHttpClientFactory,我将其注入为services.AddHttpClient(). 为了注册打字客户,我选择services.AddHttpClient<MyTypedClient>

我的问题是,如果我同时使用这两个用例,你认为会有问题吗?对 HttpMessageHandler 池有影响吗?

谢谢,杰姆。

4

1 回答 1

2

简单地说,没有。你可以使用任何你想要的东西。IHttpClientFactory处理HttpMessageHandler实例的集合。当您注入一个类型化的客户端时,实际发生的IHttpClientFactory是调用,并HttpClient创建新实例,其处理程序设置为已创建的HttpMessageHandler实例或新实例。

换句话说,它主要是语法糖。IHttpClientFactory在任何一种情况下都会被调用,并且它总是创建一个新HttpClient实例,将处理程序设置为基于名称进行跟踪的处理程序。“类型化”客户端实际上只是一个“命名”客户端,类型作为名称,所有客户端实际上都是“命名”,因为它们都存储在 aConcurrentDictionary中,其中名称是键。

于 2019-06-24T16:46:23.510 回答