Пример #1
0
 /// <summary>
 /// Initializes a new instance of <see cref="DefaultControllerFactory"/>.
 /// </summary>
 /// <param name="controllerActivator">
 /// <see cref="IControllerActivator"/> used to create controller instances.
 /// </param>
 /// <param name="propertyActivators">
 /// A set of <see cref="IControllerPropertyActivator"/> instances used to initialize controller
 /// properties.
 /// </param>
 public DefaultControllerFactory(
     IControllerActivator controllerActivator,
     IEnumerable<IControllerPropertyActivator> propertyActivators)
 {
     _controllerActivator = controllerActivator;
     _propertyActivators = propertyActivators.ToArray();
 }
 /// <summary>
 /// Initializes a new instance of <see cref="DefaultControllerFactory"/>.
 /// </summary>
 /// <param name="controllerActivator"><see cref="IControllerActivator"/> used to create controller
 /// instances.</param>
 public DefaultControllerFactory(IControllerActivator controllerActivator)
 {
     _controllerActivator = controllerActivator;
     _valueAccessorLookup = CreateValueAccessorLookup();
     _activateActions = new ConcurrentDictionary<Type, PropertyActivator<ActionContext>[]>();
     _getPropertiesToActivate = GetPropertiesToActivate;
 }
Пример #3
0
 internal DefaultControllerFactory(IControllerActivator controllerActivator, IResolver<IControllerActivator> activatorResolver, IDependencyResolver dependencyResolver)
 {
     if (controllerActivator != null)
     this._controllerActivator = controllerActivator;
       else
     this._activatorResolver = activatorResolver ?? (IResolver<IControllerActivator>) new SingleServiceResolver<IControllerActivator>((Func<IControllerActivator>) (() => (IControllerActivator) null), (IControllerActivator) new DefaultControllerFactory.DefaultControllerActivator(dependencyResolver), "DefaultControllerFactory constructor");
 }
Пример #4
0
 public DefaultControllerFactory(IServiceProvider serviceProvider, 
                                 ITypeActivator typeActivator,
                                 IControllerActivator controllerActivator)
 {
     _serviceProvider = serviceProvider;
     _typeActivator = typeActivator;
     _controllerActivator = controllerActivator;
 }
 internal DefaultControllerFactory(IControllerActivator controllerActivator, IResolver<IControllerActivator> activatorResolver, IDependencyResolver dependencyResolver) {
     if (controllerActivator != null) {
         _controllerActivator = controllerActivator;
     }
     else {
         _activatorResolver = activatorResolver ?? new SingleServiceResolver<IControllerActivator>(
             () => null,
             new DefaultControllerActivator(dependencyResolver),
             "DefaultControllerFactory contstructor"
         );
     }
 }
Пример #6
0
 internal DefaultControllerFactory(IControllerActivator controllerActivator, IResolver <IControllerActivator> activatorResolver, IDependencyResolver dependencyResolver)
 {
     if (controllerActivator != null)
     {
         _controllerActivator = controllerActivator;
     }
     else
     {
         _activatorResolver = activatorResolver ?? new SingleServiceResolver <IControllerActivator>(
             () => null,
             new DefaultControllerActivator(dependencyResolver),
             "DefaultControllerFactory constructor");
     }
 }
Пример #7
0
        public DelegateMapper(IEnumerable <IHttpControllerDescriptionBuilder> httpControllerDescriptionBuilders, IControllerActivator controllerActivator)
        {
            if (httpControllerDescriptionBuilders == null)
            {
                throw new ArgumentNullException("httpControllerDescriptionBuilders");
            }

            if (controllerActivator == null)
            {
                throw new ArgumentNullException("controllerActivator");
            }

            _controllerActivator   = controllerActivator;
            _controllerDescriptors = new Lazy <IEnumerable <ControllerInfo> >(() => httpControllerDescriptionBuilders.Select(item => item.BuildDescriptor()));
        }
        /// <summary>
        /// Initializes a new instance of <see cref="ControllerActivatorProvider"/>.
        /// </summary>
        /// <param name="controllerActivator">A <see cref="IControllerActivator"/> which is delegated to when not the default implementation.</param>
        public ControllerActivatorProvider(IControllerActivator controllerActivator)
        {
            if (controllerActivator == null)
            {
                throw new ArgumentNullException(nameof(controllerActivator));
            }

            // Compat: Delegate to controllerActivator if it's not the default implementation.
            if (controllerActivator.GetType() != typeof(DefaultControllerActivator))
            {
                _controllerActivatorCreate       = controllerActivator.Create;
                _controllerActivatorRelease      = controllerActivator.Release;
                _controllerActivatorReleaseAsync = controllerActivator.ReleaseAsync;
            }
        }
Пример #9
0
 public SpiderControllerFactory(IControllerActivator activator)
 {
     if (activator != null)
     {
         _activator = activator;
     }
     else
     {
         activator = new SpiderControllerActivator();
     }
     controllerTypes = new List <Type>();
     foreach (Assembly assembly in AppDomain.CurrentDomain.GetAssemblies())
     {
         controllerTypes.AddRange(assembly.GetTypes().Where(type => typeof(IController).IsAssignableFrom(type) && !type.IsAbstract));
     }
 }
Пример #10
0
        public TController Create <TController>(IServiceProvider serviceProvider)
            where TController : ControllerBase
        {
            IControllerActivator controllerActivator = serviceProvider
                                                       .GetRequiredService <IControllerActivator>();
            object typeActivatorCache = controllerActivator.GetType()
                                        .GetField(TypeActivatorCacheFieldName, BindingFlags.Instance | BindingFlags.NonPublic) !
                                        .GetValue(controllerActivator) !;

            return((typeActivatorCache.GetType().GetMethod(CreateInstanceMethodName) !
                    .MakeGenericMethod(typeof(TController)).Invoke(typeActivatorCache, new object[]
            {
                serviceProvider,
                typeof(TController)
            }) as TController) !);
        }
Пример #11
0
    /// <summary>
    /// Initializes a new instance of <see cref="DefaultControllerFactory"/>.
    /// </summary>
    /// <param name="controllerActivator">
    /// <see cref="IControllerActivator"/> used to create controller instances.
    /// </param>
    /// <param name="propertyActivators">
    /// A set of <see cref="IControllerPropertyActivator"/> instances used to initialize controller
    /// properties.
    /// </param>
    public DefaultControllerFactory(
        IControllerActivator controllerActivator,
        IEnumerable <IControllerPropertyActivator> propertyActivators)
    {
        if (controllerActivator == null)
        {
            throw new ArgumentNullException(nameof(controllerActivator));
        }

        if (propertyActivators == null)
        {
            throw new ArgumentNullException(nameof(propertyActivators));
        }

        _controllerActivator = controllerActivator;
        _propertyActivators  = propertyActivators.ToArray();
    }
Пример #12
0
        /// <summary>
        /// Initializes a new instance of <see cref="DefaultControllerFactory"/>.
        /// </summary>
        /// <param name="controllerActivator">
        /// <see cref="IControllerActivator"/> used to create controller instances.
        /// </param>
        /// <param name="propertyActivators">
        /// A set of <see cref="IControllerPropertyActivator"/> instances used to initialize controller
        /// properties.
        /// </param>
        public DefaultControllerFactory(
            IControllerActivator controllerActivator,
            IEnumerable<IControllerPropertyActivator> propertyActivators)
        {
            if (controllerActivator == null)
            {
                throw new ArgumentNullException(nameof(controllerActivator));
            }

            if (propertyActivators == null)
            {
                throw new ArgumentNullException(nameof(propertyActivators));
            }

            _controllerActivator = controllerActivator;
            _propertyActivators = propertyActivators.ToArray();
        }
        /// <summary>
        /// Creates the specified request context.
        /// </summary>
        /// <param name="requestContext">The request context.</param>
        /// <param name="controllerType">Type of the controller.</param>
        /// <returns></returns>
        public override IController Create(RequestContext requestContext, Type controllerType)
        {
            if (controllerType == null)
            {
                return(null);
            }

            Type activatorType = ControllerActivatorRegistry.Matching(controllerType);

            IControllerActivator activator = activatorType != null ?
                                             (IControllerActivator)Container.GetServices(activatorType) :
                                             null;

            Controller controller = activator != null?
                                    activator.Create(requestContext, controllerType) as Controller:
                                    (GetControllerInstance(controllerType) ?? Activator.CreateInstance(controllerType)) as Controller;

            if (controller != null)
            {
                Type actionInvokerType;

                if (ActionInvokerRegistry.IsRegistered(controllerType))
                {
                    actionInvokerType = ActionInvokerRegistry.Matching(controllerType);
                }
                else
                {
                    actionInvokerType = controller is IAsyncController ?
                                        KnownTypes.AsyncActionInvokerType :
                                        KnownTypes.SyncActionInvokerType;
                }

                IActionInvoker actionInvoker = Container.GetService(actionInvokerType) as IActionInvoker;

                if (actionInvoker != null)
                {
                    controller.ActionInvoker = actionInvoker;
                }
            }

            return(controller);
        }
        /// <summary>
        /// Initializes a new instance of <see cref="DefaultControllerFactory"/>.
        /// </summary>
        /// <param name="controllerActivator">
        /// <see cref="IControllerActivator"/> used to create controller instances.
        /// </param>
        /// <param name="propertyActivators">
        /// A set of <see cref="IControllerPropertyActivator"/> instances used to initialize controller
        /// properties.
        /// </param>
        public DefaultControllerFactory(
            IControllerActivator controllerActivator,
#pragma warning disable PUB0001 // Pubternal type in public API
            IEnumerable <IControllerPropertyActivator> propertyActivators
#pragma warning restore PUB0001
            )
        {
            if (controllerActivator == null)
            {
                throw new ArgumentNullException(nameof(controllerActivator));
            }

            if (propertyActivators == null)
            {
                throw new ArgumentNullException(nameof(propertyActivators));
            }

            _controllerActivator = controllerActivator;
            _propertyActivators  = propertyActivators.ToArray();
        }
 public DefaultControllerFactory(IControllerActivator controllerActivator)
     : this(controllerActivator, null, null)
 {
 }
 public JumisPermissionControllerFactory(IControllerActivator controllerActivator, IEnumerable <IControllerPropertyActivator> propertyActivators)
     : base(controllerActivator, propertyActivators)
 {
 }
        internal StardustControllerFactory(IControllerActivator activator)
            : base(activator)
        {

        }
Пример #18
0
 public RouteHelper(IControllerActivator controllerActivator, IActionActivator actionActivator)
 {
     _controllerActivator = controllerActivator;
     _actionActivator     = actionActivator;
     _actionDictionary    = new Dictionary <string, Dictionary <string, List <ActionEntity> > >();
 }
Пример #19
0
 public BasedOnDefaultControllerFactory(IControllerActivator controllerActivator) : base(controllerActivator)
 {
 }
 /// <summary>
 ///     Initializes a new instance of the <see cref="T:System.Web.Mvc.DefaultControllerFactory" /> class using a controller activator.
 /// </summary>
 /// <param name="controllerActivator"> An object that implements the controller activator interface. </param>
 /// <param name="logger"> The logger. </param>
 /// <param name="container"> The container. </param>
 public DexterControllerFactory(IControllerActivator controllerActivator, ILog logger, IDexterContainer container)
     : base(controllerActivator)
 {
     this.logger    = logger;
     this.container = container;
 }
Пример #21
0
 public CompositionControllerFactory(IControllerActivator activator)
     : this(activator, DependencyResolver.Current as ICompositionContainerProvider)
 {
 }
Пример #22
0
 public DefaultControllerFactory(IControllerActivator controllerActivator)
     : this(controllerActivator, (IResolver<IControllerActivator>) null, (IDependencyResolver) null)
 {
 }
 public static TController Create <TController>(IControllerActivator activator, IServiceProvider serviceProvider) where TController : Controller
 {
     return(Create(typeof(TController), activator, serviceProvider) as TController);
 }
Пример #24
0
 /// <summary>
 /// 初始化 <see cref="ControllerFactory"/> 类的新实例。
 /// </summary>
 /// <param name="activator">控制器的创建者。</param>
 public ControllerFactory(IControllerActivator activator)
     : base(activator)
 {
 }
Пример #25
0
 public DefaultActionBuilder(IRouteResolver actionResolver, IControllerActivator controllerActivator)
 {
     _actionResolver      = actionResolver;
     _controllerActivator = controllerActivator;
 }
Пример #26
0
 public DefaultControllerFactory(IControllerActivator activator)
 {
     Precondition.Require(activator, () => Error.ArgumentNull("activator"));
     _activator = activator;
 }
 public DynamicControllerFactory(
     IControllerActivator controllerActivator,
     IEnumerable <IControllerPropertyActivator> propertyActivators)
     : base(controllerActivator, propertyActivators)
 {
 }
 public DefaultControllerFactory(IControllerActivator controllerActivator)
     : this(controllerActivator, null, null)
 {
 }
 public CompositionControllerFactory(IControllerActivator activator)
     : this(activator, DependencyResolver.Current as ICompositionContainerProvider)
 {
 }
        public DefaultControllerFactory(IControllerActivator activator)
        {
			Precondition.Require(activator, () => Error.ArgumentNull("activator"));
			_activator = activator;
        }
 public CompositionControllerFactory(IControllerActivator activator,
                                     ICompositionContainerProvider compositionContainerProvider)
     : base(activator)
 {
     this.compositionContainerProvider = compositionContainerProvider;
 }
Пример #32
0
 public CompositionControllerFactory(IControllerActivator activator,
                                     ICompositionContainerProvider compositionContainerProvider)
     : base(activator)
 {
     this.compositionContainerProvider = compositionContainerProvider;
 }
 public WebMapControllerFactory(IControllerActivator controllerActivator) : base(controllerActivator)
 {
 }
Пример #34
0
 internal StardustControllerFactory(IControllerActivator activator)
     : base(activator)
 {
 }
Пример #35
0
 public CronusControllerFactory(IControllerActivator controllerActivator, IEnumerable <IControllerPropertyActivator> propertyActivators, CronusTenantOptions options)
 {
     defaultControllerFactory = new DefaultControllerFactory(controllerActivator, propertyActivators);
     this.options             = options;
 }
 public PropertyInjectionControllerFactory(IControllerActivator controllerActivator, IPropertyInjector propertyInjector)
 {
     _controllerActivator = controllerActivator;
     _propertyInjector    = propertyInjector;
 }
Пример #37
0
 /// <summary>
 /// Initializes a new instance of the <see cref="UnityControllerFactory"/> class.
 /// </summary>
 /// <param name="container">The container.</param>
 /// <param name="controllerActivator">The controller activator.</param>
 public UnityControllerFactory(IUnityContainer container, IControllerActivator controllerActivator)
     : base(controllerActivator)
 {
     ////Guard.ArgumentNotNull(container, "container");
     _container = new PerRequestUnityContainer(container);
 }
 /// <summary>
 /// 	Initializes a new instance of the <see cref="T:System.Web.Mvc.DefaultControllerFactory" /> class using a controller activator.
 /// </summary>
 /// <param name="controllerActivator"> An object that implements the controller activator interface. </param>
 /// <param name="logger"> The logger. </param>
 /// <param name="container"> The container. </param>
 public DexterControllerFactory(IControllerActivator controllerActivator, ILog logger, IDexterContainer container)
     : base(controllerActivator)
 {
     this.logger = logger;
     this.container = container;
 }
 public ControllerActivator(IControllerActivator controllerActivator)
 {
     _controllerActivator = controllerActivator ?? throw new ArgumentNullException(nameof(controllerActivator));
 }
Пример #40
0
 public DotNurseControllerFactory(IControllerActivator controllerActivator, IAttributeInjector attributeInjector)
 {
     this.controllerActivator = controllerActivator;
     this.attributeInjector   = attributeInjector;
 }
Пример #41
0
        private static DefaultControllerFactory CreateControllerFactory(IControllerActivator controllerActivator = null)
        {
            var activatorMock = new Mock<IControllerActivator>();

            controllerActivator = controllerActivator ?? activatorMock.Object;
            var propertyActivators = new IControllerPropertyActivator[]
            {
                new DefaultControllerPropertyActivator(),
            };

            return new DefaultControllerFactory(controllerActivator, propertyActivators);
        }