blazor - 将 HttpClient 注入 Razor 类库中的 Blazor 组件
问题描述
我从 Blazor WebAssembly 模板创建了一个解决方案,我在其中选中了 ASP.NET Core 托管复选框,因此我在解决方案中有Client
, Server
,Shared
项目。
在这个解决方案中,我添加了一个名为 BlogsRcl 的 Razor 类库(不检查“支持页面和视图”),其中我有一个名为Blogs.razor
.
我希望能够将 HttpClient 注入到我Blogs.razor
的组件中,就像FetchData.razor
“Client”项目中的组件一样,即“@inject HttpClient Http”。
在我的 BlogsRcl 项目的“.csproj”文件中,我添加了一个/或/两个引用
<PackageReference Include="Microsoft.Extensions.Http" Version="5.0.0.0" />
<PackageReference Include="System.Net.Http" Version="5.0.0" />
其中,一切都是犹太洁食Microsoft.Extensions.Http
,但是当我添加时System.Net.Http
,解决方案中的每个项目都抱怨它是Unable to find package System.Net.Http with version (>= 5.0.0)
.
然而,当我在项目HttpClient
的FetchData.razor
组件中执行 Go To Definition 时Client
,元数据显示Assembly System.Net.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
.
编辑:我也尝试添加<PackageReference Include="System.Net.Http.Json" Version="5.0.0" />
,但无济于事。
我错过了什么?
解决方案
RCL ( <Project Sdk="Microsoft.NET.Sdk.Razor">
) 不需要任何这些包引用,因为所需的包引用是框架的一部分。在 Visual Studio 中,您可以通过展开Project/Depedencies/Frameworks/Microsoft.NETCore.App/
.
但是您必须确保您还添加了所需的 using 指令。要么将它们添加到您的.razor
-file 的顶部,或者对于此类通用使用更好,将它们添加到_Imports.razor
-file。
@using System.Net.Http
@using System.Net.Http.Json
推荐阅读
- c# - 我正在尝试使用 AdvancedColorInfo 类,但不知道如何实例化它
- laravel - spatie/calendar-link,不支持日历 message.ics
- firebase - 使用 ML Kit 搜索图像 Firebase
- javascript - 在 vuejs 中使用 Vuex 执行 CRUD 操作时出错
- elasticsearch - 如何在 elasticserch 查询中获得 3 个随机搜索结果
- javascript - 从输入值中抓取数据
- arm - IAR 终端 IO 未记录 printf 输出
- typescript - useReducer ActionsType 无法使有效负载类型安全
- ruby-on-rails - 如何使用 nokogiri builder 生成 xml
- java - 保存信息时,AlertDialog 未关闭