正在为方法参数创建自定义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()之上时,它会这样做。
有人用它驱走吗?
我之所以想这样做,是因为我可以把属性放在不同的参数上,而不是一次放整个方法。
我想你的问题在这里得到了答案:
你应该在GlobalFilters
中的Global.asax.cs
中注册你的过滤器,如下所示:
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
filters.Add(new CultureInfoAttribute());
}