【问题标题】:ServiceStack: Adding Blazor support?ServiceStack:添加 Blazor 支持?
【发布时间】:2019-10-16 14:37:19
【问题描述】:

我尝试将 ServiceStack 引用添加到客户端 Blazor 项目,但在通过 NuGet 添加 ServiceStack.HttpClient 后遇到问题。

目前,VS2019 会告诉我:

找不到导出类型“System.Threading”的声明

ask/look around 时,他们会说:

Blazor 是使用 mono-wasm 作为基础 .NET 框架构建的 实施,在这种情况下,我相信这是一个缺失的方法 这就是问题所在。

目前 Mono WASM 不支持线程;检查回购 https://github.com/lrz/mono-wasm-mono了解更多信息

我理解正确吗:

  • ServiceStack 需要System.Threading
  • WebAssembly 因此 Blazor 不支持对 System.Threading 的引用
  • 意味着 ServiceStack 不能在 Blazor 应用中使用

【问题讨论】:

    标签: c# visual-studio servicestack blazor


    【解决方案1】:

    ServiceStack 的 Blazor WASM 模板由 Sebastian Faltonihttps://github.com/nukedbit/blazor-wasm-servicestack 维护

    可以用x dotnet tool安装:

    $ 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 关于 ServiceStack 使用 Web Sockets 的说法不正确,ServiceStack 在其任何库中都不使用 Web Sockets,BlazorClient 是使用 Blazor WASM 支持的 .NET HttpClient 的服务客户端。

    【讨论】:

    • 感谢神话。那么,如果我正确阅读了您的答案,您将在正式发布时查看 Blazor 支持吗?
    • @Ted Right,将在 Blazor 正式发布后研究 JSON 服务客户端。
    【解决方案2】:

    @泰德,

    Blazor 不在多线程环境中运行。 Blazor (mono-wasm) 在同一个 JavaScript 沙箱中运行,在同一个 UI 线程中。没有多线程,没有并发或并行编程。正如我之前所说,我从未听说过 ServiceStack,但我猜 ServiceStack.HttpClient 不能在 Blazor 客户端中使用,因为“Blazor HttpClient”是基于 HttpMessageHandler 的,并且它适合作为 Ajax 代理工作;也就是说,HttpClient 通过 JavaScript Fetch Web API 与后端通信,而我相信 ServiceStack 使用 Web 套接字执行传统的 http 客户端调用,而 Blazor (mono-wasm) 不支持这种调用。在 Asp.Net Core 5.0 中,预计 Blazor 客户端将支持 Web 套接字,之后 mono 将被替换。

    不,ServiceStack 不能在 Blazor 应用中使用

    希望对你有帮助……

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-22
      • 1970-01-01
      • 1970-01-01
      • 2023-03-04
      • 1970-01-01
      相关资源
      最近更新 更多