WebAPI фильтр инъекции зависимостей .net ядра MVC / (FilterAttribute)

В .net ядра MVC и .net основные WebAPI проекты обычно нужно добавить фильтры FilterAttribute полномочий для решения ряда интерфейсов, проблемы проверки параметров. Нам нужно использовать фильтр плагин в системе был введен (класс) и так далее. Вынесенные на фильтре методы контроллера не подскажут нам нулевой аргумент конструктора. Как справиться с этой проблемой?

Первый шаг: инъекционного фильтр

public void ConfigureServices(IServiceCollection services)
{ 
            //注入筛选器
            services.AddScoped<ApiActionFilterAttribute>();
}

ApiActionFilterAttribute обычай ActionFilterAttribute, унаследованный от ActionFilterAttribute, [Другие фильтры могут также сделать это]

Шаг два: добавление выноски по методу


        [ServiceFilter(typeof(ApiActionFilterAttribute))]

Я здесь, чтобы воспользоваться ServiceFilter Microsoft предложил эту услугу.

 

Третий шаг: использование зарегистрированных компонентов (модуль типа)

 public class ApiActionFilterAttribute : ActionFilterAttribute
 {
        private readonly ILogger<ApiActionFilterAttribute> _logger; 
        public ApiActionFilterAttribute(Microsoft.Extensions.Options.IOptions<ILogger<ApiActionFilterAttribute> logger)
        { 
            _logger = logger;
        }
        public override void OnActionExecuting(ActionExecutingContext actionContext)
        {
            _logger.LogInformation(Newtonsoft.Json.JsonConvert.SerializeObject(actionContext.HttpContext.Request.Headers));
        }
}

Я здесь компоненты ILogger были имплантированы, вы можете использовать компонент здесь.

Опубликовано 12 оригинальных статей · вона похвала 0 · Просмотров 653

рекомендация

отblog.csdn.net/oopxiajun2011/article/details/104874466
рекомендация