ASPNETCore API ExceptionFilterAttribute и IStringLocalizer - PullRequest
0 голосов
/ 31 мая 2018

У меня есть ExceptionFilterAttribute в моем ASPNETCore API, где я обрабатываю определенные типы исключений.

Например, любое UnauthorizedAccessException, которое я возвращаю HttpStatusCode.Unauthorized, любое KeyNotFoundException, которое я возвращаю HttpStatusCode.NotFound и т. Д.

ОднакоЯ также возвращаю основное сообщение.Например, строка «Ключ не найден» возвращается с HttpStatusCode.NotFound.

Я бы хотел, чтобы сообщения, содержащиеся в ExceptionFilterAttribute, были проанализированы с использованием IStringLocalizer.Однако ExceptionFilterAttribute, похоже, не поддерживает внедрение зависимостей.

Кто-нибудь сталкивался с такой же проблемой?

Есть ли здесь подход, который считается наилучшей практикой?

1 Ответ

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

Вы можете получить доступ к IServiceProvider из ExceptionContext.

public override void OnException(ExceptionContext context)
{
    var service = context.HttpContext.RequestServices.GetService<MyService>();
}
...