Как добавить ILogger к глобальной обработке ошибок в веб-API ASP.NET Core?C#

Место общения программистов C#
Ответить
Anonymous
 Как добавить ILogger к глобальной обработке ошибок в веб-API ASP.NET Core?

Сообщение Anonymous »

У меня есть обработчик исключений:

Код: Выделить всё

    public class ApplicationExceptionHandler :ExceptionFilterAttribute
{
public ApplicationExceptionHandler()
{
}
public override void OnException(ExceptionContext context)
{
ApiError apiError = null;
switch (context.Exception)
{
case  TaxiNotFoundException:
apiError = new ApiError(context.Exception.Message);
context.Result = new ObjectResult(apiError) {StatusCode = StatusCodes.Status404NotFound };
break;
default:
context.Result = new BadRequestResult();
break;
}
base.OnException(context);
}
}

public class ApiError
{
public string Message { get; set; }
public ApiError(string message)
{
Message = message;
}
public override string ToString()
{
return JsonConvert.SerializeObject(this);
}
}

[ApplicationExceptionHandler]
public class TaxisController : ControllerBase
{ ...
Как использовать ILogger в обработчике исключений? Если я создам конструктор:

Код: Выделить всё

public ApplicationExceptionHandler(ILogger logger)
{
this.logger = logger;
}
В моем контроллере я получаю исключение компилятора:

Код: Выделить всё

[ApplicationExceptionHandler (ILogger < ApplicationExceptionHandler > logger)]
Logger — это тип, который недопустим в данном контексте. Как добавить ILogger в обработчик исключений?


Подробнее здесь: https://stackoverflow.com/questions/681 ... ore-webapi
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»