问题描述
我正在尝试使用 IHttpClientFactory。我已阅读文章 https://docs.microsoft.com/en-us/aspnet/core/fundamentals/http-requests?view=aspnetcore-3.0 启动.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddHttpClient();
services.AddSingleton<INasaStream,NasaStream>();
services.AddSingleton<INasaProvider,NasaProvider>();
}
// another methods remove for clearance
NasaStream.cs
public class NasaStream : INasaStream
{
// some variables declaration
public NasaStream(IOptions<AppSettings> options,HttpClient _client,ILogger<NasaProvider> _logger)
{
settings = options.Value;
client = _client;
logger = _logger;
}
}
未处理的异常。 System.AggregateException:无法构建某些服务(验证服务描述符“ServiceType”时出错: Mars.INasaStream Lifetime:Singleton ImplementationType:Mars.NasaStream':在尝试激活“Mars.NasaStream”时无法解析类型“System.Net.Http.HttpClient”的服务。)(验证服务描述符“ServiceType:Mars”时出错.INasaProvider Lifetime: Singleton ImplementationType: Mars.NasaProvider”:尝试激活“Mars.NasaStream”时无法解析“System.Net.Http.HttpClient”类型的服务。)(验证服务描述符“ServiceType:Mars.solDataQuery Lifetime:Singleton ImplementationType:Mars”时出错.solDataQuery”:尝试激活“Mars.NasaStream”时无法解析“System.Net.Http.HttpClient”类型的服务。)
为什么我做错了?
解决方法
好吧,那是我的错误。我看不到错误和调试日志,因为我关闭了它们。这并不意味着我的代码不起作用。 正确答案由@Nkosi 完成
public void ConfigureServices(IServiceCollection services)
{
services.AddHttpClient<INasaStream,NasaStream>();
...
}
我应该使用类型化客户端,仅此而已