我从Blazor WebAssembly模板创建了一个解决方案,在那里我签下了ASP。NET Core托管复选框,因此我在解决方案中有Client
、Server
和Shared
项目。
对于这个解决方案,我添加了一个名为BlogsRcl的Razor类库(不检查"支持页面和视图"(,其中我有一个称为Blogs.razor
的Blazor组件。
我希望能够将HttpClient注入到我的Blogs.razor
组件中,就像"Client"项目中的FetchData.razor
组件一样,即"@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)
。
然而,当我在Client
项目的FetchData.razor
组件中对HttpClient
执行Go To Definition时,元数据显示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
-文件的顶部,要么更好的是,对于此类通用using,将它们添加在_Imports.razor
-文件中。
@using System.Net.Http
@using System.Net.Http.Json