C# HttpClient和IHttpClientFactory继承逻辑

C# HttpClient和IHttpClientFactory继承逻辑,c#,.net-core,C#,.net Core,我正在Startup.cs类中创建这样的客户机 services.AddHttpClient("myClient", client => { client.BaseAddress = new Uri("https://test.com"); }); 然后我有一个客户端文件client.cs protected readonly HttpClient httpClient; public Client(HttpClient httpClient

我正在
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;
}
现在,当我在
ServiceClass.cs
中扩展我的客户机类时:

private readonly HttpClient _myClient;
public ServiceClass(IHttpClientFactory httpClientFactory) : base(//What should I pass here?)
{
  _myClient = httpClientFactory.CraeteClient("myClient");
}

我不确定应该在这里传递什么对象,或者我的代码结构不正确。请帮忙

完全删除
\u myClient
字段,因为您有一个受保护的字段
httpClient
,而是让基本构造函数来处理它:

public ServiceClass(IHttpClientFactory httpClientFactory) : 
base(httpClientFactory.CraeteClient("myClient")) 
{}

代码假定您没有寻找两个不同的HttpClient成员。

完全删除\u myClient字段,因为您有一个受保护的字段HttpClient,而是让基本构造函数来处理它:

public ServiceClass(IHttpClientFactory httpClientFactory) : 
base(httpClientFactory.CraeteClient("myClient")) 
{}

代码假定您没有寻找两个不同的HttpClient成员。

如果您从Client继承ServiceClass,为什么您同时拥有HttpClient\u myClient?对不起,我正在扩展Client.cs类。我正在尝试初始化客户端类的构造函数,在这里我应该传递HttpClient。很抱歉,如果我无法正确解释逻辑。如果您从
Client
继承
ServiceClass
,为什么您同时拥有
httpClient
\u myClient
?对不起,我正在扩展Client.cs类。我正在尝试初始化客户端类的构造函数,在这里我应该传递HttpClient。对不起,如果我不能正确解释逻辑。是的,我只需要构造一个客户端。当我在基类中创建客户机时,我也需要访问ServiceClass中的客户机。@Sara这就是
protected
所做的。@SaraMannings,因为它被标记为
protected
所有继承的类都有访问权。鉴于你的回答,我想这就是你想要的。非常感谢。你说得很清楚。感谢LotusCraeteClient->CreateClient是的,我只需要构造一个客户端。当我在基类中创建客户机时,我也需要访问ServiceClass中的客户机。@Sara这就是
protected
所做的。@SaraMannings,因为它被标记为
protected
所有继承的类都有访问权。鉴于你的回答,我想这就是你想要的。非常感谢。你说得很清楚。感谢LotusCraeteClient->CreateClient输入错误