コード例 #1
0
        public void OnProvidersExecuted(ActionDescriptorProviderContext context)
        {
            if (context.Results.Count == 0)
            {
                throw new InvalidOperationException("No actions found!");
            }

            Interlocked.Increment(ref _callCount);
        }
コード例 #2
0
        /// <inheritdoc />
        public void OnProvidersExecuting(ActionDescriptorProviderContext context)
        {
            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }

            foreach (var descriptor in GetDescriptors())
            {
                context.Results.Add(descriptor);
            }
        }
コード例 #3
0
 public void OnProvidersExecuting(ActionDescriptorProviderContext context)
 {
     foreach (var assembly in _assemblyProvider.CandidateAssemblies)
     {
         foreach (var type in assembly.GetExportedTypes())
         {
             var typeInfo = type.GetTypeInfo();
             if (typeInfo.IsClass &&
                 !typeInfo.IsAbstract &&
                 !typeInfo.ContainsGenericParameters &&
                 typeof(MvcModule).IsAssignableFrom(type) &&
                 type != typeof(MvcModule))
             {
                 foreach (var action in GetActions(type))
                 {
                     context.Results.Add(action);
                 }
             }
         }
     }
 }
コード例 #4
0
        private ActionDescriptorCollection GetCollection()
        {
            var providers =
                _serviceProvider.GetServices<IActionDescriptorProvider>()
                                .OrderBy(p => p.Order)
                                .ToArray();

            var context = new ActionDescriptorProviderContext();

            foreach (var provider in providers)
            {
                provider.OnProvidersExecuting(context);
            }

            for (var i = providers.Length - 1; i >= 0; i--)
            {
                providers[i].OnProvidersExecuted(context);
            }

            return new ActionDescriptorCollection(
                new ReadOnlyCollection<ActionDescriptor>(context.Results), 0);
        }
コード例 #5
0
 public void OnProvidersExecuting(ActionDescriptorProviderContext context)
 {
 }