private static ActionConstraintCache GetActionConstraintCache(IActionConstraintProvider[] actionConstraintProviders = null) { var services = new ServiceCollection().BuildServiceProvider(); var descriptorProvider = new ActionDescriptorCollectionProvider(services); return(new ActionConstraintCache(descriptorProvider, actionConstraintProviders.AsEnumerable() ?? new List <IActionConstraintProvider>())); }
private ActionDescriptor InvokeActionSelector(RouteContext context) { var actionDescriptorProvider = GetActionDescriptorProvider(); var serviceContainer = new ServiceCollection(); var list = new List <IActionDescriptorProvider>() { actionDescriptorProvider, }; serviceContainer.AddSingleton(typeof(IEnumerable <IActionDescriptorProvider>), list); var actionDescriptorCollectionProvider = new ActionDescriptorCollectionProvider( serviceContainer.BuildServiceProvider()); var decisionTreeProvider = new ActionSelectorDecisionTreeProvider(actionDescriptorCollectionProvider); var actionConstraintProviders = new[] { new DefaultActionConstraintProvider(), }; var defaultActionSelector = new ActionSelector( decisionTreeProvider, GetActionConstraintCache(actionConstraintProviders), NullLoggerFactory.Instance); return(defaultActionSelector.Select(context)); }
private static ActionConstraintCache GetActionConstraintCache(IActionConstraintProvider[] actionConstraintProviders = null) { var descriptorProvider = new ActionDescriptorCollectionProvider( Enumerable.Empty <IActionDescriptorProvider>(), Enumerable.Empty <IActionDescriptorChangeProvider>()); return(new ActionConstraintCache(descriptorProvider, actionConstraintProviders.AsEnumerable() ?? new List <IActionConstraintProvider>())); }
private ControllerActionDescriptor InvokeActionSelector(RouteContext context) { var actionDescriptorProvider = GetActionDescriptorProvider(); var actionDescriptorCollectionProvider = new ActionDescriptorCollectionProvider( new[] { actionDescriptorProvider }, Enumerable.Empty <IActionDescriptorChangeProvider>()); var actionConstraintProviders = new[] { new DefaultActionConstraintProvider(), }; var actionSelector = new ActionSelector( actionDescriptorCollectionProvider, GetActionConstraintCache(actionConstraintProviders), NullLoggerFactory.Instance); var candidates = actionSelector.SelectCandidates(context); return((ControllerActionDescriptor)actionSelector.SelectBestCandidate(context, candidates)); }