繁体   English   中英

为方法参数创建自定义FilterAttribute

[英]Creating custom FilterAttribute for method parameters

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

例如我的想法是:

public HttpResponseMessage GetAll([CultureInfo]string culture)

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

CultureInfo是一个从ActionFilterAttribute继承的类(CultureInfoAttribute),在这里我可以使用2个称为OnActionExecuted和OnActionExecuting的方法。 在我的课堂上,我使用了下一个属性,因此可以在参数上使用它:

[AttributeUsage(AttributeTargets.Parameter)]

当我构建并调用GetAll(“ culture”)时,自定义过滤器中的OnActionExecuting方法永远不会被调用....当我将属性放在方法GetAll()上方时,它确实会被调用。

有人有经验吗?

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

我认为您的问题在这里得到了回答:

您应该像这样在Global.asax.cs GlobalFilters中注册过滤器:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM