static ActionConstraintCache GetActionConstraintCache(IActionConstraintProvider[] actionConstraintProviders = null) { var descriptorProvider = new DefaultActionDescriptorCollectionProvider( Enumerable.Empty<IActionDescriptorProvider>(), Enumerable.Empty<IActionDescriptorChangeProvider>()); return new ActionConstraintCache(descriptorProvider, actionConstraintProviders.AsEnumerable() ?? new List<IActionConstraintProvider>()); }
ControllerActionDescriptor InvokeActionSelector(RouteContext context) { var actionDescriptorProvider = GetActionDescriptorProvider(); var actionDescriptorCollectionProvider = new DefaultActionDescriptorCollectionProvider( new[] { actionDescriptorProvider }, Enumerable.Empty<IActionDescriptorChangeProvider>()); var actionConstraintProviders = new[] { new DefaultActionConstraintProvider(), }; var actionSelector = CreateSelector(actionDescriptorCollectionProvider, actionConstraintProviders); var candidates = actionSelector.SelectCandidates(context); return (ControllerActionDescriptor)actionSelector.SelectBestCandidate(context, candidates); }