/// <summary>
 /// Gets the list of filters that are defined per action
 /// </summary>
 public ConfigurationElementCollection<FilterElement> GetActionFilters(string controllerName, string actionName)
 {
     lock (_actionFiltersLock)
     {
         if (_actionFilters == null)
         {
             _actionFilters = new Dictionary<string, ConfigurationElementCollection<FilterElement>>();
             var filters = Filters.Where(f => (!String.IsNullOrEmpty(f.Controller)) && (!String.IsNullOrEmpty(f.Action)));
             foreach (var f in filters)
             {
                 var collection = new ConfigurationElementCollection<FilterElement>();
                 var key = GetActionFilterKey(f.Controller, f.Action);
                 if (_actionFilters.ContainsKey(key))
                 {
                     collection = _actionFilters[key];
                 }
                 else
                 {
                     _actionFilters.Add(key, collection);
                 }
                 collection.Add(f);
             }
         }
     }
     ConfigurationElementCollection<FilterElement> result  = null;
     if (_actionFilters.ContainsKey(GetActionFilterKey(controllerName, actionName)))
     {
         result = _actionFilters[GetActionFilterKey(controllerName, actionName)];
     }
     return result;
 }