ServiceStack: добавлена ​​поддержка Blazor? - PullRequest
2 голосов
/ 31 мая 2019

Я пытался добавить ссылки ServiceStack в клиентский проект Blazor, но у меня возникают проблемы после добавления ServiceStack.HttpClient через NuGet.

В настоящее время VS2019 скажет мне, что:

Не удается найти объявление экспортированного типа 'System.Threading'

и когда спрашивают / оглядываются , они говорят, что:

Blazor построен с использованием mono-wasm в качестве базовой платформы .NET реализации, и в этом случае я считаю, что это недостающий метод в моноосм - вот в чем проблема.

и

в настоящее время Mono WASM не поддерживает многопоточность; проверить репо https://github.com/lrz/mono-wasm-mono для получения дополнительной информации

Правильно ли я понимаю:

  • ServiceStack требует System.Threading
  • WebAssembly и, следовательно, Blazor не поддерживает ссылки на System.Threading
  • Это означает, что ServiceStack нельзя использовать в приложении Blazor

Ответы [ 2 ]

2 голосов
/ 31 мая 2019

Маловероятно, что библиотеки ввода-вывода, такие как ServiceStack.Client или ServiceStack.HttpClient будут работать без пользовательской сборки для WASM, чтобы исключить все зависимости, которые Blazor не поддерживает.

@ Issac неверно описывает ServiceStack с использованием веб-сокетов, ServiceStack не использует веб-сокеты ни в одной из своих библиотек, а JsonHttpClient в ServiceStack.HttpClient является оболочкой .NET HttpClient, который выглядит как лучший способ включить Service Client в Blazor, используя альтернативный HttpMessageHandler, но работа по поддержке клиентских моносимвольных сборок Blazor не начнется до его официального выпуска.

0 голосов
/ 31 мая 2019

@ Тед,

Blazor не работает в многопоточной среде. Blazor (mono-wasm) работает в той же песочнице JavaScript, в том же потоке пользовательского интерфейса. Нет многопоточности, нет параллельного или параллельного программирования. Как я уже говорил ранее, я никогда не слышал о ServiceStack, но я предполагаю, что ServiceStack.HttpClient нельзя использовать на стороне клиента Blazor, так как «Blazor HttpClient» основан на HttpMessageHandler и адаптирован для работы в качестве агента Ajax. ; то есть HttpClient взаимодействует с Back-end через веб-API JavaScript Fetch, в то время как ServiceStack, как я полагаю, выполняет традиционные клиентские вызовы http, используя веб-сокеты, которые не поддерживаются в Blazor (mono-wasm). В Asp.Net Core 5.0 ожидается, что клиентская сторона Blazor будет поддерживать веб-сокеты после замены mono.

Нет, ServiceStack нельзя использовать в приложении Blazor

Надеюсь, это поможет ...

...