public ModelBindingActionInvokerFactory(
     IControllerFactory controllerFactory,
     ControllerActionInvokerCache controllerActionInvokerCache,
     IControllerArgumentBinder argumentBinder,
     IOptions<MvcOptions> optionsAccessor,
     ILoggerFactory loggerFactory,
     DiagnosticSource diagnosticSource)
 {
     this.controllerFactory = controllerFactory;
     this.argumentBinder = argumentBinder;
     this.controllerActionInvokerCache = controllerActionInvokerCache;
     this.valueProviderFactories = optionsAccessor.Value.ValueProviderFactories.ToArray();
     this.maxModelValidationErrors = optionsAccessor.Value.MaxModelValidationErrors;
     this.logger = loggerFactory.CreateLogger<ControllerActionInvoker>();
     this.diagnosticSource = diagnosticSource;
 }
コード例 #2
0
 public ControllerActionInvokerProvider(
     IControllerFactory controllerFactory,
     ControllerActionInvokerCache controllerActionInvokerCache,
     IControllerArgumentBinder argumentBinder,
     IOptions <MvcOptions> optionsAccessor,
     ILoggerFactory loggerFactory,
     DiagnosticSource diagnosticSource)
 {
     _controllerFactory            = controllerFactory;
     _controllerActionInvokerCache = controllerActionInvokerCache;
     _argumentBinder           = argumentBinder;
     _valueProviderFactories   = optionsAccessor.Value.ValueProviderFactories.ToArray();
     _maxModelValidationErrors = optionsAccessor.Value.MaxModelValidationErrors;
     _logger           = loggerFactory.CreateLogger <ControllerActionInvoker>();
     _diagnosticSource = diagnosticSource;
 }
 public ModelBindingActionInvokerFactory(
     IControllerFactory controllerFactory,
     ControllerActionInvokerCache controllerActionInvokerCache,
     IControllerArgumentBinder argumentBinder,
     IOptions <MvcOptions> optionsAccessor,
     ILoggerFactory loggerFactory,
     DiagnosticSource diagnosticSource)
 {
     this.controllerFactory            = controllerFactory;
     this.argumentBinder               = argumentBinder;
     this.controllerActionInvokerCache = controllerActionInvokerCache;
     this.valueProviderFactories       = optionsAccessor.Value.ValueProviderFactories.ToArray();
     this.maxModelValidationErrors     = optionsAccessor.Value.MaxModelValidationErrors;
     this.logger           = loggerFactory.CreateLogger <ControllerActionInvoker>();
     this.diagnosticSource = diagnosticSource;
 }
コード例 #4
0
 public ControllerActionInvokerProvider(
     IControllerFactory controllerFactory,
     ControllerActionInvokerCache controllerActionInvokerCache,
     IControllerArgumentBinder argumentBinder,
     IOptions<MvcOptions> optionsAccessor,
     ILoggerFactory loggerFactory,
     DiagnosticSource diagnosticSource)
 {
     _controllerFactory = controllerFactory;
     _controllerActionInvokerCache = controllerActionInvokerCache;
     _argumentBinder = argumentBinder;
     _valueProviderFactories = optionsAccessor.Value.ValueProviderFactories.ToArray();
     _maxModelValidationErrors = optionsAccessor.Value.MaxModelValidationErrors;
     _logger = loggerFactory.CreateLogger<ControllerActionInvoker>();
     _diagnosticSource = diagnosticSource;
 }
コード例 #5
0
        public ModelBindingActionInvoker(
            ControllerActionInvokerCache cache,
            IControllerFactory controllerFactory,
            IControllerArgumentBinder controllerArgumentBinder,
            ILogger logger,
            DiagnosticSource diagnosticSource,
            ActionContext actionContext,
            IReadOnlyList<IValueProviderFactory> valueProviderFactories,
            int maxModelValidationErrors)
                : base(cache, controllerFactory, controllerArgumentBinder, logger, diagnosticSource, actionContext, valueProviderFactories, maxModelValidationErrors)
        {
            this.BoundActionArguments = new Dictionary<string, object>();

            this.controllerFactory = controllerFactory;
            this.controllerArgumentBinder = controllerArgumentBinder;

            this.controllerContext = new ControllerContext(actionContext);
            this.controllerContext.ModelState.MaxAllowedErrors = maxModelValidationErrors;
            this.controllerContext.ValueProviderFactories = new List<IValueProviderFactory>(valueProviderFactories);
        }
        public ModelBindingActionInvoker(
            ControllerActionInvokerCache cache,
            IControllerFactory controllerFactory,
            IControllerArgumentBinder controllerArgumentBinder,
            ILogger logger,
            DiagnosticSource diagnosticSource,
            ActionContext actionContext,
            IReadOnlyList <IValueProviderFactory> valueProviderFactories,
            int maxModelValidationErrors)
            : base(cache, controllerFactory, controllerArgumentBinder, logger, diagnosticSource, actionContext, valueProviderFactories, maxModelValidationErrors)
        {
            this.BoundActionArguments = new Dictionary <string, object>();

            this.controllerFactory        = controllerFactory;
            this.controllerArgumentBinder = controllerArgumentBinder;

            this.controllerContext = new ControllerContext(actionContext);
            this.controllerContext.ModelState.MaxAllowedErrors = maxModelValidationErrors;
            this.controllerContext.ValueProviderFactories      = new List <IValueProviderFactory>(valueProviderFactories);
        }
コード例 #7
0
 public TestControllerActionInvoker(
     IFilterProvider[] filterProviders,
     MockControllerFactory controllerFactory,
     IControllerArgumentBinder argumentBinder,
     ILogger logger,
     DiagnosticSource diagnosticSource,
     ActionContext actionContext,
     IReadOnlyList <IValueProviderFactory> valueProviderFactories,
     int maxAllowedErrorsInModelState)
     : base(
         CreateFilterCache(filterProviders),
         controllerFactory,
         argumentBinder,
         logger,
         diagnosticSource,
         actionContext,
         valueProviderFactories,
         maxAllowedErrorsInModelState)
 {
     ControllerFactory = controllerFactory;
 }
コード例 #8
0
        public ControllerActionInvoker(
            ControllerActionInvokerCache cache,
            IControllerFactory controllerFactory,
            IControllerArgumentBinder controllerArgumentBinder,
            ILogger logger,
            DiagnosticSource diagnosticSource,
            ActionContext actionContext,
            IReadOnlyList <IValueProviderFactory> valueProviderFactories,
            int maxModelValidationErrors)
        {
            if (cache == null)
            {
                throw new ArgumentNullException(nameof(cache));
            }

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

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

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

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

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

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

            _controllerFactory        = controllerFactory;
            _controllerArgumentBinder = controllerArgumentBinder;
            _logger           = logger;
            _diagnosticSource = diagnosticSource;

            _controllerContext = new ControllerContext(actionContext);
            _controllerContext.ModelState.MaxAllowedErrors = maxModelValidationErrors;

            // PERF: These are rarely going to be changed, so let's go copy-on-write.
            _controllerContext.ValueProviderFactories = new CopyOnWriteList <IValueProviderFactory>(valueProviderFactories);

            var cacheEntry = cache.GetState(_controllerContext);

            _filters  = cacheEntry.Filters;
            _executor = cacheEntry.ActionMethodExecutor;
            _cursor   = new FilterCursor(_filters);
        }
コード例 #9
0
 public WebSocketArgumentBinder(IOptions <WebSocketOptions> optionsAccessor, IWebSocketContextAccessor webSocketContextAccessor, IControllerArgumentBinder controllerArgumentBinder)
 {
     ControllerArgumentBinder = controllerArgumentBinder;
     WebSocketContextAccessor = webSocketContextAccessor;
     Options = optionsAccessor.Value;
 }