Exemple #1
0
        public NodeBuilder Use(Type middlewareType, MiddlewareScope scope, Type optionsType, Delegate optionsBuilder)
        {
            var wrapper = new MiddlewareWrapper(middlewareType, scope, optionsType, optionsBuilder);

            _middlewares.Add(wrapper);
            return(this);
        }
Exemple #2
0
        public NodeBuilder Use(Type middlewareType, MiddlewareScope scope, object options)
        {
            var wrapper = new MiddlewareWrapper(middlewareType, scope, options);

            _middlewares.Add(wrapper);
            return(this);
        }
        public static NodeBuilder Use(this NodeBuilder builder, Type middlewareType, MiddlewareScope scope)
        {
            if (builder == null)
            {
                return(null);
            }

            return(builder.Use(middlewareType, scope, null));
        }
        public static NodeBuilder Use <TMiddleware>(this NodeBuilder builder, MiddlewareScope scope)
            where TMiddleware : class, IMiddleware, new()
        {
            if (builder == null)
            {
                return(null);
            }

            return(builder.Use(typeof(TMiddleware), scope, null));
        }
        public static NodeBuilder Use <TMiddleware>(this NodeBuilder builder, MiddlewareScope scope, object options)
            where TMiddleware : class, IMiddleware
        {
            if (builder == null)
            {
                return(null);
            }

            return(builder.Use(typeof(TMiddleware), scope, options));
        }
        public MiddlewareWrapper(Type middlewareType, object singleton)
        {
            if (middlewareType == null)
            {
                throw new ArgumentNullException(nameof(middlewareType));
            }

            ValidateTypes(middlewareType, out _hasOptions, null, null, null);

            _middlewareType = middlewareType;
            _scope          = MiddlewareScope.Singleton;

            _singleton = singleton;
        }
        public MiddlewareWrapper(Type middlewareType, MiddlewareScope scope, object options = null)
        {
            if (middlewareType == null)
            {
                throw new ArgumentNullException(nameof(middlewareType));
            }

            ValidateTypes(middlewareType, out _hasOptions, options?.GetType(), null, options);

            _middlewareType = middlewareType;
            _optionsType    = options?.GetType();
            _options        = options;
            _scope          = scope;
        }
        public MiddlewareWrapper(Type middlewareType, MiddlewareScope scope, Type optionsType = null, Delegate optionsBuilder = null)
        {
            if (middlewareType == null)
            {
                throw new ArgumentNullException(nameof(middlewareType));
            }
            if ((optionsType == null && optionsBuilder != null) ||
                (optionsType != null && optionsBuilder == null))
            {
                throw new ArgumentException($"If either '{nameof(optionsType)}' or '{nameof(optionsBuilder)}' is specified (e.g. not null), then the other one must also be specified.");
            }

            ValidateTypes(middlewareType, out _hasOptions, optionsType, optionsBuilder);

            _middlewareType = middlewareType;
            _optionsType    = optionsType;
            _optionsBuilder = optionsBuilder;
            _scope          = scope;
        }
        public static NodeBuilder Use <TOptions>(this NodeBuilder builder, Type middlewareType, MiddlewareScope scope, Action <TOptions> optionsBuilder)
            where TOptions : class, new()
        {
            if (builder == null)
            {
                return(null);
            }

            return(builder.Use(middlewareType, scope, typeof(TOptions), optionsBuilder));
        }