我已经创建了一个自定义属性,并且我试图在asp.net操作筛选器中检索此自定义属性的值,但是它似乎不可用。我在做什么错了?
[AttributeUsage(AttributeTargets.Method, Inherited = true)]
public sealed class MyCustomAttribute : Attribute
{
MyCustomAttribute(string param)
{
}
}
public class MyCustomActionFilter : IActionFilter
{
public void OnActionExecuted(ActionExecutedContext context)
{
throw new NotImplementedException();
}
public void OnActionExecuting(ActionExecutingContext context)
{
// unable to find my custom attribute here under context.Filters or anywhere else.
}
}
[HttpGet]
[MyCustomAttribute ("test123")]
public async Task<Details> GetDetails(
{
}
答案 0 :(得分:1)
如果您想自己做,则要实现的目标要稍微复杂一点(即,从grep
方法中反映出属性值)。
在您的示例中,我建议使用来自ASP.NET Core的内置属性过滤器(ASP.NET Core documentation中的更多信息):
nm2 <- unlist(pt_data[1, grep("^keyword", names(pt_data))])
i1 <- grep("^hits", names(pt_data))
names(pt_data)[i1] <- nm2
i2 <- grep("^(geo|time|keyword|group)", names(pt_data))
pt_data[i2] <- NULL
并像这样注释您的控制器动作:
Controller