gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 11:36:36 25 4
gpt4 key购买 nike

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

public sealed class MyGlobalFilterExceptionAttribute : FilterAttribute, IOverrideFilter
{
public Type FiltersToOverride
{
get { return typeof(ITest); }
}
}

我的全局过滤器已实现 ITest界面。我知道我可以在我原来的全局过滤器中实现这个任务,但我想这样做 IOverrideFilter .

任何的想法??

最佳答案

msdn 信息并不完全清楚,但 IOverrideFilter.FiltersToOverride 必须是 正好以下之一:

  • IActionFilter
  • IAuthorizationFilter
  • IAuthenticationFilter
  • IExceptionFilter

  • 基本上,您不能覆盖特定过滤器,您只能覆盖上述类别之一的所有过滤器。看看 ProcessOverrideFilters source code 中的方法.

    所以,假设您的 ITest过滤器的类型为 IActionFilter ,那么您的覆盖将是(相同的逻辑适用于任何其他过滤器类别):
    public Type FiltersToOverride
    {
    get { return typeof(IActionFilter); }
    }

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

    对于更细粒度的覆盖,您可能需要开发特定的解决方案 like this one或编写您自己的过滤器提供程序 as in this very nice article

    关于asp.net-mvc - 使用 IOverrideFilter 覆盖自定义 ActionFilter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30712977/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com