C# 为方法参数创建自定义FilterAttribute

C# 为方法参数创建自定义FilterAttribute,c#,asp.net-mvc,C#,Asp.net Mvc,是否可以为传入参数创建自定义FilterAttribute? 大多数属性用于方法和类 例如,我的想法是: 公共HttpResponseMessage GetAll[CultureInfo]字符串区域性 { 如果有效 { //代码在这里 } } CultureInfo是一个类CultureInfo属性,它继承自ActionFilterAttribute,在这里我可以使用两个名为OnActionExecuted和OnActionExecuting的方法。 在类的顶部,我使用了下一个属性,以便在参

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

例如,我的想法是:

公共HttpResponseMessage GetAll[CultureInfo]字符串区域性

{ 如果有效 { //代码在这里 } }

CultureInfo是一个类CultureInfo属性,它继承自ActionFilterAttribute,在这里我可以使用两个名为OnActionExecuted和OnActionExecuting的方法。 在类的顶部,我使用了下一个属性,以便在参数上使用它:

[AttributeUsageAttributeTargets.Parameter]

当我构建并调用GetAllculture时,在自定义筛选器中执行的OnAction方法永远不会被调用……当我将该属性置于方法GetAll之上时,就会被调用

有人有这方面的经验吗


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

我想你的问题得到了回答:

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

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