public IEnumerable<Tuple<string, string, FilterScope>> Get()
        {
            HttpControllerDescriptor[] controllerDescriptors = new HttpControllerDescriptor[] {
            new HttpControllerDescriptor(this.Configuration,"foo",typeof(FooController)),
            new HttpControllerDescriptor(this.Configuration,"bar",typeof(BarController)),
            new HttpControllerDescriptor(this.Configuration,"baz",typeof(BazController)),
            };

            IHttpActionSelector actionSelector = this.Configuration.Services.GetActionSelector();
            IEnumerable<HttpActionDescriptor> actionDescriptors = controllerDescriptors.SelectMany(controllerDescriptor =>
                actionSelector.GetActionMapping(controllerDescriptor)["Action"]);
            foreach (HttpActionDescriptor actionDescriptor in actionDescriptors)
            {
                foreach (FilterInfo filterInfo in actionDescriptor.GetFilterPipeline())
                {
                    yield return new Tuple<string, string, FilterScope>(
                            string.Format("{0}.{1}", actionDescriptor.ControllerDescriptor.ControllerType.Name, actionDescriptor.ActionName),
                            filterInfo.Instance.GetType().Name,
                            filterInfo.Scope);
                }
            }
        }
Exemple #2
0
        public IEnumerable <Tuple <string, string, FilterScope> > Get()
        {
            HttpControllerDescriptor[] controllerDescriptors = new HttpControllerDescriptor[] {
                new HttpControllerDescriptor(this.Configuration, "foo", typeof(FooController)),
                new HttpControllerDescriptor(this.Configuration, "bar", typeof(BarController)),
                new HttpControllerDescriptor(this.Configuration, "baz", typeof(BazController)),
            };

            IHttpActionSelector actionSelector = this.Configuration.Services.GetActionSelector();
            IEnumerable <HttpActionDescriptor> actionDescriptors = controllerDescriptors.SelectMany(controllerDescriptor =>
                                                                                                    actionSelector.GetActionMapping(controllerDescriptor)["Action"]);

            foreach (HttpActionDescriptor actionDescriptor in actionDescriptors)
            {
                foreach (FilterInfo filterInfo in actionDescriptor.GetFilterPipeline())
                {
                    yield return(new Tuple <string, string, FilterScope>(
                                     string.Format("{0}.{1}", actionDescriptor.ControllerDescriptor.ControllerType.Name, actionDescriptor.ActionName),
                                     filterInfo.Instance.GetType().Name,
                                     filterInfo.Scope));
                }
            }
        }