我有一个功能正常的 Blazor WebAssembly (WASM) 组件,它是 ASP.NET Core 托管的,包含三个项目:客户端、服务器和共享。客户端组件使用服务器端应用程序内的控制器文件中包含的 Web API 端点连接到 SQL Server 数据库。
我现在想与多个应用程序共享这个组件。最佳实践是使用 Razor 类库 (RCL) 还是仅将组件保留为项目格式并直接在将使用它的项目中添加/引用它?如果推荐使用 RCL,我该如何处理控制器?
我有一个功能正常的 Blazor WebAssembly (WASM) 组件,它是 ASP.NET Core 托管的,包含三个项目:客户端、服务器和共享。客户端组件使用服务器端应用程序内的控制器文件中包含的 Web API 端点连接到 SQL Server 数据库。
我现在想与多个应用程序共享这个组件。最佳实践是使用 Razor 类库 (RCL) 还是仅将组件保留为项目格式并直接在将使用它的项目中添加/引用它?如果推荐使用 RCL,我该如何处理控制器?
我找到了我的问题的部分答案。似乎在 .NET 6 之前,可以通过共享项目来共享 Blazor 组件。但是,在 .NET 6 中,这会产生错误,并且推荐使用 Razor 类库 (RCL) 来共享 WebAssembly 组件。来源:GitHub aspnetcore 问题 #36732
我还在MSDN上发布过帖子,到目前为止,我还没有找到将客户端 WASM 类和服务器端控制器类组合到单个 RCL 中的方法。根据我到目前为止所学到的,我可以看到两个选项:
对客户端组件使用 RCL,对服务器端控制器使用常规类库(或第二个 RCL)。(我没有测试过这个)。
转换为服务器端 Blazor 项目。这是我最终使用的解决方案。它不需要 Web API/控制器,并且通过 RCL 共享组件效果很好。奖励,编码/调试更容易,项目加载更快。该解决方案非常适合我目前的需求。