Определить режим клиента или сервера - PullRequest
0 голосов
/ 28 ноября 2018

Я создаю приложение Blazor, которое может переключаться между режимом клиента и режимом сервера.Части приложения работают только в одном или другом, и в этом случае необходимо выполнить запасной код.

Есть ли хороший способ, например, проверить, работает Mono или нет?

Есть предложения?

Ответы [ 2 ]

0 голосов
/ 08 декабря 2018

Использование JSRuntime.Current ненадежно, так как оно пустое во время запуска.Следующее должно работать в любое время.

Type.GetType("Mono.Runtime") != null;

Я добавляю этот класс в DI-контейнер и, таким образом, могу управлять им.

  public class JsRuntimeLocation
  {
    public bool IsClientSide => HasMono;
    public bool IsServerSide => !HasMono;
    public bool HasMono => Type.GetType("Mono.Runtime") != null;
  }
0 голосов
/ 28 ноября 2018

Возможно, это поможет вам:

// Mono WebAssembly is running.
if (JSRuntime.Current is MonoWebAssemblyJSRuntime mono)
{
}
else
{
}

См. Также инструкции о BlazorDualMode , которые позволяют запускать ваше приложение в обоих режимах, а также проверять, какой режим запущен.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...