总之,我想知道如何从Razor组件库中访问Blazor的CircuitHandler
和Microsoft.AspNetCore.Components.Server.Circuits
。
我正在尝试构建一个Razor类库,其中包含Blazor组件、服务、处理程序和一些用于活跃用户跟踪的逻辑。我已经在不同的Blazor服务器应用程序中实现了这段代码,所以我知道这种方法是有效的。我想让它成为一个通用的和可重用的库,为我的其他项目。
然而,我遇到了一个问题,因为我在库中的一个服务需要命名空间Microsoft.AspNetCore.Components.Server.Circuits
从Blazor的CircuitHandler继承。当我尝试添加using
语句时,我无法访问Server.Circuits
名称空间,并且我得到一个错误:
CS0234: The type or namespace name 'name' does not exist in the namespace 'namespace' (are you missing an assembly reference?)
我相信这是因为Razor组件库不是一个完整的Blazor应用程序,所以它可能无法访问所有相同的命名空间。我尝试安装各种NuGet包到组件库,但没有解决这个问题。我不知道如何直接安装Server.Circuits
命名空间,或者它是否可能。
是否有一个特定的NuGet包我缺失,或者直接安装Components.Server.Circuits
命名空间到Razor组件库的方法?或者,当我在Blazor应用程序内注册Program.cs
中的服务时,我能以某种方式将CircuitHandler
传递到组件库中吗?
我在GitHub上问过这个问题,dotnet团队给了我一个简单的解决方案。您只需要将这一行添加到您的csproj的ItemGroup
:
<FrameworkReference Include="Microsoft.AspNetCore.App" />
你看过了吗Microsoft.AspNetCore.Components.WebAssembly.Server