public NodeBuilder Use(Type middlewareType, MiddlewareScope scope, Type optionsType, Delegate optionsBuilder) { var wrapper = new MiddlewareWrapper(middlewareType, scope, optionsType, optionsBuilder); _middlewares.Add(wrapper); return(this); }
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)); }