c# - ServiceStack:添加 Blazor 支持?
问题描述
我曾尝试将 ServiceStack 引用添加到客户端 Blazor 项目,但在通过 NuGet 添加 ServiceStack.HttpClient 后遇到问题。
目前,VS2019 会告诉我:
找不到导出类型“System.Threading”的声明
当询问/环顾四周时,他们会说:
Blazor 是使用 mono-wasm 作为基本 .NET 框架实现构建的,在这种情况下,我认为这是 mono-wasm 中缺少的方法,这就是问题所在。
和
目前 Mono WASM 不支持线程;检查回购 https://github.com/lrz/mono-wasm-mono了解更多信息
我得到正确了吗:
- ServiceStack 需要
System.Threading
- WebAssembly 因此 Blazor 不支持对
System.Threading
- 这意味着 ServiceStack 不能在 Blazor 应用程序中使用
解决方案
ServiceStack 的 Blazor WASM 模板由Sebastian Faltoni在https://github.com/nukedbit/blazor-wasm-servicestack维护
可以使用x dotnet 工具安装:
$ dotnet tool install -g x
并创建:
$ x new nukedbit/blazor-wasm-servicestack ProjectName
或者对于免安装替代方案,使用 ServiceStack 的在线项目模板生成器: https ://servicestack.net/start#community
它包括与 Blazor 服务客户端的集成,该客户端可以在以下位置创建:
var client = BlazorClient.Create("https://localhost:5001")
它当前返回一个预配置JsonHttpClient
,删除 Blazor WASM 不支持的所有 HttpClient 功能。随着时间的推移,我们将包含更多功能,因为它们在 Blazor 中受支持。
@Issac 关于使用 Web 套接字的 ServiceStack 是不正确的,ServiceStack 在其任何库中都不使用 Web 套接字,并且BlazorClient
是使用 Blazor WASM 支持的 .NET 的 HttpClient 的服务客户端。
推荐阅读
- python - 如何安装 httplib2 库 - 运行安装时出错
- r - 如何在 data.table 中进行更快的列表列操作
- typescript - 为什么 TypeScript 编译器不会抱怨与形状不匹配的对象?
- python - 使用 OpenCV 提高用稀释墨水书写的几乎不可见的旧文本的对比度和质量
- visual-studio - 尽管包含正确的 INCLUDE 文件,但 MKL DFT 未解析的外部符号
- python - 如何让 Mypy 意识到 isinstance 已经被调用?
- java - 需要什么来转换 JPanel 和 JButton 以与 IOS 一起工作,避免“无头”错误?
- pyqt5 - AttributeError:“QHoverEvent”对象没有属性“x”
- python - 如何使 Python REGEX 匹配表达式的第一次出现 - 它现在扩展到第二次
- java - 阵列保龄球得分