【发布时间】:2014-12-30 21:32:28
【问题描述】:
使用以下类:
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false)]
public class OrderItemCountActionFilterAttribute : ActionFilterAttribute
{
}
public class OrderItemCountFilter : IActionFilter
{
public void OnActionExecuting(ActionExecutingContext filterContext)
{
}
public void OnActionExecuted(ActionExecutedContext filterContext)
{
var attribute = filterContext.ActionDescriptor.ControllerDescriptor.GetCustomAttributes(typeof(OrderItemCountActionFilterAttribute), true);
var attribute2 = filterContext.ActionDescriptor.GetCustomAttributes(typeof(OrderItemCountActionFilterAttribute),true);
if (attribute.All(o => o.GetType() != typeof (OrderItemCountActionFilterAttribute)))
{
return;
}
throw new Exception("It worked!");
}
}
还有下面的FilterConfig:
public static class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters, Container container)
{
filters.Add(new HandleErrorAttribute());
filters.Add(new OrderItemCountActionFilterAttribute());
filters.Add(container.GetInstance<OrderItemCountFilter>();
}
}
filterContext.ActionDescriptor.GetCustomAttributes(typeof(OrderItemCountActionFilterAttribute),true); 找不到全局添加的 OrderItemCountActionFilterAttribute。但是,如果我手动将其添加到操作中,则可以使用它。
我已经做了 2 天了,但我没有取得任何进展。我想知道这里是否缺少一些我可以访问的属性以访问全局添加的 OrderItemCountActionFilterAttribute。
【问题讨论】:
标签: asp.net-mvc dependency-injection custom-attributes action-filter