c# - HttpClient 和 IHttpClientFactory 继承逻辑
问题描述
我正在Startup.cs
课堂上创建一个这样的客户。
services.AddHttpClient("myClient", client =>
{
client.BaseAddress = new Uri("https://test.com");
});
然后我有一个客户文件Client.cs
protected readonly HttpClient httpClient;
public Client(HttpClient httpClient)
{
this.httpClient = httpClient;
}
现在,当我在以下位置扩展我的 Client 类时ServiceClass.cs
:
private readonly HttpClient _myClient;
public ServiceClass(IHttpClientFactory httpClientFactory) : base(//What should I pass here?)
{
_myClient = httpClientFactory.CraeteClient("myClient");
}
我不确定我应该在这里传递什么对象,或者我的代码结构不正确。请帮忙!
解决方案
完全删除该_myClient
字段,因为您有一个受保护的字段httpClient
,而是让基本构造函数处理它:
public ServiceClass(IHttpClientFactory httpClientFactory) :
base(httpClientFactory.CraeteClient("myClient"))
{}
代码假定您不是在寻找两个不同的HttpClient
成员。