无法在控制台应用程序中使用 AddHttpClient / IHttpClientBuilder
Can't use AddHttpClient / IHttpClientBuilder in console app
我有一些来自 Web 应用程序的代码,这些代码将 http 客户端配置为使用证书。我依赖 IHttpClientBuilder
和 AddHttpClient
.
我想在控制台应用程序中使用相同的方法进行测试,但我什至很难让这些类型在那里可用。
文档 here 说我可以在控制台应用程序中使用 Microsoft.Extensions.Hosting
(在那里它用于初始化配置),但即使这个包应该依赖于 Microsoft.Extensions.DependencyInjection
,上面的类型和方法应该存在的地方,编译器告诉我这些类型是未知的。
控制台应用程序是使用 .NET 6.0 全新创建的,它唯一的包参考是 Microsoft.Extensions.Hosting
6.0.1。为什么那不给我 IHttpClientBuilder
?
编辑:
之后
dotnet new console
dotnet add package Microsoft.Extensions.Hosting
仅编辑 Program.cs
至
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
var host = Host.CreateDefaultBuilder(args);
host.ConfigureServices(services =>
{
services.AddHttpClient(); // not found
});
发现IHttpClientBuilder
和朋友还没到
除了 Microsoft.Extensions.DependencyInjection
之外,您还需要添加对 Microsoft.Extensions.Http
包的引用。
我遇到了完全相同的问题,我阅读的 Microsoft 文档没有明确提及这一点。当我阅读此博客 post: Simple Example of Calling REST API with HttpClient in .NET 5.0 by Adam Storr 时,这一点变得很明显。在其中,作者添加了两个包。
在 re-reviewing HttpClientFactoryServiceCollectionExtensions
的文档中,我注意到在“定义”下 header 命名空间是 Microsoft.Extensions.DependencyInjection
但程序集是 Microsoft.Extensions.Http.dll
.
我有一些来自 Web 应用程序的代码,这些代码将 http 客户端配置为使用证书。我依赖 IHttpClientBuilder
和 AddHttpClient
.
我想在控制台应用程序中使用相同的方法进行测试,但我什至很难让这些类型在那里可用。
文档 here 说我可以在控制台应用程序中使用 Microsoft.Extensions.Hosting
(在那里它用于初始化配置),但即使这个包应该依赖于 Microsoft.Extensions.DependencyInjection
,上面的类型和方法应该存在的地方,编译器告诉我这些类型是未知的。
控制台应用程序是使用 .NET 6.0 全新创建的,它唯一的包参考是 Microsoft.Extensions.Hosting
6.0.1。为什么那不给我 IHttpClientBuilder
?
编辑:
之后
dotnet new console
dotnet add package Microsoft.Extensions.Hosting
仅编辑 Program.cs
至
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
var host = Host.CreateDefaultBuilder(args);
host.ConfigureServices(services =>
{
services.AddHttpClient(); // not found
});
发现IHttpClientBuilder
和朋友还没到
除了 Microsoft.Extensions.DependencyInjection
之外,您还需要添加对 Microsoft.Extensions.Http
包的引用。
我遇到了完全相同的问题,我阅读的 Microsoft 文档没有明确提及这一点。当我阅读此博客 post: Simple Example of Calling REST API with HttpClient in .NET 5.0 by Adam Storr 时,这一点变得很明显。在其中,作者添加了两个包。
在 re-reviewing HttpClientFactoryServiceCollectionExtensions
的文档中,我注意到在“定义”下 header 命名空间是 Microsoft.Extensions.DependencyInjection
但程序集是 Microsoft.Extensions.Http.dll
.