依赖注入Filter的使用的三种方式
- ServiceFilter
[ServiceFilter(typeof(CustomActionFilterAttribute))]
- TypeFilter
[TypeFilter(typeof(CustomActionFilterAttribute))]
- IFilterFactory
public class CustomFilterFactoryAttribute : Attribute, IFilterFactory
{
public bool IsReusable => true;
public IFilterMetadata CreateInstance(IServiceProvider serviceProvider)
{
return (IFilterMetadata)serviceProvider.GetService(typeof(CustomActionFilterAttribute));
}
}
[CustomFilterFactoryAttribute]
使用Filter是要注入的
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
services.AddScoped(typeof(CustomActionFilterAttribute));
}