.NET 코어 MVC / webapi 필터 (FilterAttribute) 의존성 삽입

NET의 핵심에서 MVC 및 .NET 핵심 webapi 프로젝트는 일반적으로 필터를 인터페이스, 매개 변수 유효성 검사 문제의 숫자를 다루는 FilterAttribute 권한을 추가해야합니다. 우리는 등등 플러그인 시스템이 주입 된 필터 (클래스) 등을 사용해야합니다. 제로 인수 생성자에 우리에게 메시지를 표시하지 않습니다 컨트롤러 방식의 필터에 표시. 어떻게이 문제를 해결하려면?

첫 번째 단계 : 사출 필터

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

ActionFilterAttribute에서 상속 ActionFilterAttribute의 ApiActionFilterAttribute 사용자는 [다른 필터는 그렇게 할 수 있습니다]

단계 : 방법에 추가 콜 아웃


        [ServiceFilter(typeof(ApiActionFilterAttribute))]

나는이 서비스를 제공 한 인 ServiceFilter 마이크로 소프트를 활용하기 위해 여기입니다.

 

세 번째 단계는 등록 된 구성 요소 (플러그 형)를 사용하여

 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