【问题标题】:How to Reference IHttpClientFactory in Blazor WebAssemly App?如何在 Blazor WebAssembly 应用程序中引用 IHttpClientFactory?
【发布时间】:2021-06-21 19:01:48
【问题描述】:

在 VS 2019 中,我尝试在 Blazor WebAssemply 应用程序中使用 HttpClient 进行测试。创建新项目时,我选择了.Net Core 3.1 选项。在 Program.cs 中,HttpClient 服务注册如下:

builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });

在“框架”部分下,列出了system.net.http

我们遇到了无法将 @inject IHttpClientFactory http 添加到新 Razor 组件的问题。错误信息是:

错误 CS0246 找不到类型或命名空间名称“IHttpClientFactory”(您是否缺少 using 指令或程序集引用?)

Microsoft 网站上的在线文档显示IHttpClientFactory 是在System.Net.Http 包中定义的。我遇到的错误的根本原因是什么,我该如何解决?

【问题讨论】:

  • 但是你为什么不直接注入 HttpClient 呢?这就是将其范围限定为 DI 范围的想法。
  • 你不需要也不想要 WebAssembly 应用程序中的工厂模式。
  • Henk Holterman:“不需要也不想……” 然而,默认模板中默认使用 IHttpClientFactory。你想知道为什么吗?这值得提出一个新问题。请创建一个新问题,我会尽力回答... ;}
  • 我确实尝试过使用 Microsoft.extension.http Nuget 包。使用@inject IHttpClientFactory 时代码编译成功。但是,由于某种原因,剃须刀页面不起作用。所以,我放弃使用 IHttpClientFactory 并返回使用 HttpClient 并使用 .NET 5 创建 WebAssembly 应用程序。请在另一篇文章中查看更多详细信息:stackoverflow.com/questions/66805194/…

标签: c# blazor blazor-webassembly httpclientfactory


【解决方案1】:

您需要安装以下 Nuget 包:Microsoft.Extensions.Http

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-18
    • 1970-01-01
    • 1970-01-01
    • 2020-07-04
    • 2021-10-26
    • 2021-06-28
    • 2022-01-15
    • 1970-01-01
    相关资源
    最近更新 更多