Autofac — внедрение свойств в фильтр действий в ASP.NET CoreC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Гость
 Autofac — внедрение свойств в фильтр действий в ASP.NET Core

Сообщение Гость »


При написании приложения с использованием ASP.NET Web API 2 мне удалось добиться внедрения свойств на уровне фильтра с помощью Autofac.< /п> (пример ниже относится к неосновному веб-API ASP.NET)

builder.Register(x => new MyCustomGlobalActionFilter()) .AsWebApiApiActionFilterOverrideFor() .InstancePerRequest() .PropertiesAutowired(); Несколько вещей, о которых стоит упомянуть:
[*]мы должны зарегистрировать его для любого контроллера следующим образом: .AsWebApiActionFilterOverrideFor() [*]Для включения введения свойств используется следующий бит: .PropertiesAutowired()
Сам фильтр действий выглядит немного необычно, поскольку он тесно связан с Autofac — мы реализуем интерфейс IAutofacActionFilter.

Затем я могу разрешить службы на уровне фильтра посредством внедрения свойств, вот пример кода:

публичный класс MyCustomGlobalActionFilter: IAutofacActionFilter { публичный сеанс сеанса {get; набор; } общественный DbContextWithUserAuditing DbContext {получить; набор; } общественный ITenantService TenantService {получить; набор; } общедоступная задача OnActionExecutingAsync( HttpActionContext actionContext, Токен отменыToken ) { строка userId = ноль; инт? идентификатор арендатора = ноль; вар претензииIdentity = actionContext.RequestContext.Principal как ClaimsPrincipal; // делаем что-то вернуть Task.FromResult(0); } общедоступная задача OnActionExecutedAsync( HttpActionExecutedContext actionExecutedContext, Токен отменыToken ) { вернуть Task.FromResult(0); } } Итак, чтобы разрешить услуги как свойства, мы просто объявляем их следующим образом:

публичный сеанс сеанса { get; набор; } общественный DbContextWithUserAuditing DbContext {получить; набор; } общественный ITenantService TenantService {получить; набор; } Мой вопрос: есть ли способ разрешить службы посредством внедрения свойств в фильтр с помощью Autofac в ASP.NET Core?
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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