.NET Core UseExceptionHandler DI - PullRequest
       43

.NET Core UseExceptionHandler DI

0 голосов
/ 31 октября 2018

Я внедряю пользовательскую службу регистрации ошибок и отчетов в мою коллекцию служб во время запуска. ConfigureServices.

services.AddTransient<IErrorService, ErrorService>();

Затем я добавляю глобальную ловушку ошибок в Startup.Configure.

app.UseExceptionHandler("/Home/Error");

Затем в Home.Error у меня есть мой DI для ErrorService, и я передаю ему свой контекст, и все работает отлично.

Теперь мне интересно, есть ли какой-нибудь способ устранить связь с Home.Error, и просто вызвать мою службу ErrorService прямо в Configure? Но я не могу понять, как получить связь с ErrorService на этом этапе запуска. Обратите внимание, что двумя другими сервисами, которые я внедряю, являются мой EmailService и мой ProgramSettings. Мне нужны оба из них в ErrorService, поэтому мне нужно, чтобы ErrorService вызывался таким образом, чтобы подключался стандартный .NET Core DI.

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        app.UseExceptionHandler(a => {
            a.Run(ctx => {
                var exceptionFeature = ctx.Features.Get<IExceptionHandlerPathFeature>();

                     ... execute ErrorService here somehow????????

                ctx.Response.StatusCode = StatusCodes.Status500InternalServerError;
                return Task.CompletedTask;
            });
        });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...