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输入错误