首页 > 解决方案 > 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");
}

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

标签: c#.net-core

解决方案


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

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

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


推荐阅读