前面我们介绍了Filter的基本使用,但各种Filter要在合适的时机运行起来,需要预先准备好,现在看看ASP.NET MVC框架是怎么做的。

一.Filter集合

  在ControlerActionInvoker的InvokeAction方法中,只有一行代码FilterInfo filterInfo = GetFilters(controllerContext, actionDescriptor), 把收集的Filter信息放到了FilterInfo中,我们来看看

访类型的定义:

 1  public class FilterInfo
 2     {
 3         
 4         public FilterInfo();
 5       
 6         public FilterInfo(IEnumerable<Filter> filters);
 7 
 8        
 9         public IList<IActionFilter> ActionFilters { get; }
10         public IList<System.Web.Mvc.Filters.IAuthenticationFilter> AuthenticationFilters { get; }
11        
12         public IList<IAuthorizationFilter> AuthorizationFilters { get; }
13       
14         public IList<IExceptionFilter> ExceptionFilters { get; }
15    
16         public IList<IResultFilter> ResultFilters { get; }
17     }
View Code

相关文章: