IServiceCollection 不包含 AddHttpClient 的定义
Posted
技术标签:
【中文标题】IServiceCollection 不包含 AddHttpClient 的定义【英文标题】:IServiceCollection does not contain a defintion for AddHttpClient 【发布时间】:2018-08-30 07:36:04 【问题描述】:我正在尝试在我的 .net core 2.0 项目中使用 HttpClient,为此我在控制器中注入了 HttpClient。但是当我尝试在我的 startup.cs 中配置 httpclient 时,我收到了这个错误:“”。我已经引用了using Microsoft.AspNetCore.Http;
和using Microsoft.Extensions.DependencyInjection;
,这就是我想要做的:
services.AddHttpClient<TestController>();
它在具有相同命名空间的其他项目中运行良好,但在这里我得到了错误。有什么帮助吗?
【问题讨论】:
【参考方案1】:你需要从NuGet安装Microsoft.Extensions.Http
【讨论】:
确保为您的目标框架安装正确的版本。例如如果您的目标是 .net core 3.1,那么您需要安装此软件包的 3.1.x 版本。否则,您可能会收到类似System.Private.CoreLib: Could not load file or assembly 'Microsoft.Extensions.Logging.Abstractions, Version=X.X.X.X
的错误
@mfa 这个评论救了我,谢谢
我通过安装 Microsoft.Extensions.Http.Polly 解决了这个问题【参考方案2】:
啊,我找到了解决方案。我认为services.AddHttpClient
与.net core 2.1 一起工作。所以我将我的 .net 核心版本更新为 2.1,并将微软软件包更新为 2.1,它开始工作了。
【讨论】:
我认为您将 .NET Standard 和 .NET Core 混淆了? Core 3.0 实现了标准 2.1。见表:docs.microsoft.com/en-us/dotnet/standard/net-standard以上是关于IServiceCollection 不包含 AddHttpClient 的定义的主要内容,如果未能解决你的问题,请参考以下文章
使用 IServiceCollection.AddTransient、IServiceCollection.AddSingleton 和 IServiceCollectionAddScoped 方法的
使用 IServiceCollection.AddTransient、IServiceCollection.AddSingleton 和 IServiceCollectionAddScoped 方法的
IServiceCollection 和 IMvcBuilder 之间是啥关系?
通过调用“IServiceCollection.AddHealthChecks”添加所有必需的服务