正在为方法参数创建自定义FilterAttribute

本文关键字:创建 自定义 FilterAttribute 参数 方法 | 更新日期: 2023-09-27 17:57:34

是否可以为传入参数创建自定义FilterAttribute?大多数属性用于方法和类;

例如,我的想法是:

public HttpResponseMessage GetAll([CultureInfo]string culture)

{ if(valid) { // code here } }

CultureInfo是一个从ActionFilterAttribute继承的类(CultureInfoAttribute),在ActionFilterAttribute中我可以使用两个名为OnActionExecuted和OnActionExecuting的方法。在我的类的顶部,我使用了下一个属性,这样我就可以在参数上使用它:

[AttributeUsage(AttributeTargets.Parameter)]

当我构建并调用GetAll("区域性")时,我的自定义筛选器中的方法OnActionExecuting永远不会被调用。。。。当我把属性放在我的方法GetAll()之上时,它会这样做。

有人用它驱走吗?

我之所以想这样做,是因为我可以把属性放在不同的参数上,而不是一次放整个方法。

正在为方法参数创建自定义FilterAttribute

我想你的问题在这里得到了答案:

你应该在GlobalFilters中的Global.asax.cs中注册你的过滤器,如下所示:

public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
    filters.Add(new HandleErrorAttribute());
    filters.Add(new CultureInfoAttribute());
}