Autofac — внедрение свойств в фильтр действий в ASP.NET Core ⇐ 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?
При написании приложения с использованием 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?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Миграция из ASP.NET CORE с 2,2 по 3.1. Autofac.core.epectendencyResolutionException
Anonymous » » в форуме C# - 0 Ответы
- 2 Просмотры
-
Последнее сообщение Anonymous
-