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 구성 요소가 여기에있는 구성 요소를 사용, 이식 된 여기입니다.