/// <summary> /// distribute pipeline /// </summary> /// <param name="pipeline">upstream pipeline</param> /// <param name="distributer">The distributor responsible for distributing to different downstream pipelines</param> /// <returns>HTTP pipeline</returns> public static IHttpPipelineHandler Distribute(this IHttpPipeline pipeline, IHttpPipelineDistributer distributer) { if (distributer == null) { throw new ArgumentNullException(nameof(distributer)); } return(pipeline.Join(distributer.AsHandler())); }
public DistributerHandler(IHttpPipelineDistributer distributer) { _distributer = distributer; }
/// <summary> /// returns the request distributer as a pipeline handler. /// </summary> /// <param name="distributer">HTTP request distributer</param> /// <returns>a pipeline handler</returns> public static IHttpPipelineHandler AsHandler(this IHttpPipelineDistributer distributer) { return(new DistributerHandler(distributer)); }
/// <summary> /// 让管线分发器处理指定的请求 /// </summary> /// <param name="distributer">管线分发器</param> /// <param name="request">要处理的请求</param> /// <returns>处理结果</returns> public static ValueTask <HttpResponseMessage> Handle(this IHttpPipelineDistributer distributer, HttpRequestMessage request) { return(new DistributerHandler(distributer).ProcessRequest(request)); }