Blazor на стороне клиента Обработка исключений на уровне приложений - PullRequest
4 голосов
/ 23 мая 2019

Как глобально обрабатывать исключения уровня приложений для клиентских приложений Blazor?

1 Ответ

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

Вы можете создать одноэлементную службу, которая обрабатывает событие WriteLine. Это будет срабатывать только при ошибках благодаря Console.SetError(this);

public class ExceptionNotificationService : TextWriter
{
    private TextWriter _decorated;
    public override Encoding Encoding => Encoding.UTF8;

    public event EventHandler<string> OnException;

    public ExceptionNotificationService()
    {
        _decorated = Console.Error;
        Console.SetError(this);
    }

    public override void WriteLine(string value)
    {
        OnException?.Invoke(this, value);

        _decorated.WriteLine(value);
    }
}

Затем вы добавляете его в файл Startup.cs в функции ConfigureServices:

services.AddSingleton<ExceptionNotificationService>();

Чтобы использовать его, вы просто подписываетесь на событие OnException в главном окне.

Источник

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