Asp.net mvc 使用IOverrideFilter覆盖自定义ActionFilter

Asp.net mvc 使用IOverrideFilter覆盖自定义ActionFilter,asp.net-mvc,Asp.net Mvc,我想使用IOverrideFilter接口覆盖我的自定义全局过滤器,但它根本不起作用!代码如下所示: public sealed class MyGlobalFilterExceptionAttribute : FilterAttribute, IOverrideFilter { public Type FiltersToOverride { get { return typeof(ITest); } } } 我的全局筛选器已实现ITest接口。我知道我

我想使用
IOverrideFilter
接口覆盖我的自定义全局过滤器,但它根本不起作用!代码如下所示:

public sealed class MyGlobalFilterExceptionAttribute : FilterAttribute, IOverrideFilter
{
    public Type FiltersToOverride
    {
        get { return typeof(ITest); }
    }
}
我的全局筛选器已实现
ITest
接口。我知道我可以在最初的全局筛选器中实现该任务,但我希望通过
IOverrideFilter
来实现


有什么想法吗?

msdn信息并不完全清楚,但必须是准确的以下信息之一:

  • IActionFilter
  • IAuthorizationFilter
  • iaauthenticationfilter
  • IEExceptionFilter
基本上,您不能覆盖特定的过滤器,只能覆盖上面其中一个类别的所有过滤器。查看中的
ProcessOverrideFilters
方法

因此,假设您的
ITest
过滤器是
IActionFilter
类型,那么您的覆盖将是(相同的逻辑将适用于任何其他过滤器类别):

您还可以使用预定义的(以及其他过滤器类别的类似预定义覆盖属性)

为了获得更细粒度的覆盖,您可能需要开发特定的解决方案或编写自己的过滤器提供程序

public Type FiltersToOverride
{
    get { return typeof(IActionFilter); }
}