在我的应用程序中,我将拥有几个TypedClient服务。然而,这些类将共享一堆方法。我解决这个问题的方法是创建CustomHttpClient:
public class CustomHttpClient:HttpClient
{
//here shared methods
}
那么我的客户端类将使用这个派生类而不是标准的HttpClient:
public class MyService : IMyService
{
public SomeService(CustomHttpClient client, IConfiguration configuration){}
}
然而,如果我尝试在启动时注册此服务,就会出现错误,表示'MyService'没有合适的构造函数:
services.AddHttpClient<IMyService, MyService>();
在文档中我找到了以下内容:
类型化客户端是一个类,它接受一个HttpClient对象(通过其构造函数注入),并使用它调用一些远程HTTP服务
这是否意味着它不能接受HttpClient的子类? 如果是这种情况,那么我的唯一解决方案将是实现共享方法作为HttpClient扩展方法(我不太喜欢这个解决方案)。 是否有解决方法或扩展方法是我唯一的出路? 我尝试注册CustomHttpClient以便DI容器可以找到它,但错误仍然相同。 你能给我什么建议吗?