/// <summary> /// 在路由中间件 /// </summary> /// <param name="middleware">中间件</param> /// <returns></returns> public IRouteGroup Middleware(Action <IRequest, IResponse, IFilterChain <IRequest, IResponse> > middleware) { options.Middleware(middleware); for (int i = 0; i < routes.Count; i++) { routes[i].Middleware(middleware); } return(this); }
/// <summary> /// 添加路由中间件 /// </summary> /// <param name="middleware">中间件</param> /// <param name="priority">优先级(值越小越优先)</param> /// <returns>当前路由组实例</returns> public IRouteGroup Middleware(Action <IRequest, IResponse, Action <IRequest, IResponse> > middleware, int priority = int.MaxValue) { Guard.Requires <ArgumentNullException>(middleware != null); options.Middleware(middleware); for (var i = 0; i < routes.Count; i++) { routes[i].Middleware(middleware, priority); } return(this); }
/// <summary> /// 合并中间件 /// </summary> /// <param name="options"></param> protected void MergeMiddleware(RouteOptions options) { if (middleware == null) { return; } IFilter <IRequest, IResponse>[] filters = middleware.FilterList; for (int i = 0; i < filters.Length; i++) { options.Middleware(filters[i]); } }
/// <summary> /// 合并中间件 /// </summary> /// <param name="options">外部路由配置</param> private void MergeMiddleware(RouteOptions options) { if (middleware == null) { return; } var filters = middleware.FilterList; for (var i = 0; i < filters.Length; i++) { options.Middleware(filters[i]); } }
/// <summary> /// 路由中间件 /// </summary> /// <param name="middleware"></param> /// <returns></returns> public IRoute Middleware(Action <IRequest, IResponse, Action <IRequest, IResponse> > middleware) { options.Middleware(middleware); return(this); }
/// <summary> /// 路由中间件 /// </summary> /// <param name="middleware">执行的处理函数</param> /// <returns>路由条目实例</returns> public IRoute Middleware(Action <IRequest, IResponse, Action <IRequest, IResponse> > middleware) { Guard.Requires <ArgumentNullException>(middleware != null); options.Middleware(middleware); return(this); }
/// <summary> /// 路由中间件 /// </summary> /// <param name="middleware">执行的处理函数</param> /// <param name="priority">优先级(值越小越优先)</param> /// <returns>路由条目实例</returns> public IRoute Middleware(Action <IRequest, IResponse, Action <IRequest, IResponse> > middleware, int priority = int.MaxValue) { Guard.Requires <ArgumentNullException>(middleware != null); options.Middleware(middleware, priority); return(this); }