如果您打算从 直接响应客户端pipepart1
,那么您可以避免调用管道中的其他中间件。下面是一个例子。这是你的想法吗?
这里基于某些条件(在我的情况下,如果查询字符串具有特定的键),我决定要么直接响应客户端,要么调用下一个中间件。
appBuilder.Map("/something/something", doit =>
{
doit.Use<Pipepart1>();
doit.Use<Pipepart2>();
});
public class Pipepart1 : OwinMiddleware
{
public Pipepart1(OwinMiddleware next) : base(next) { }
public override Task Invoke(IOwinContext context)
{
if (context.Request.Uri.Query.Contains("shortcircuit"))
{
return context.Response.WriteAsync("Hello from Pipepart1");
}
return Next.Invoke(context);
}
}
public class Pipepart2 : OwinMiddleware
{
public Pipepart2(OwinMiddleware next) : base(next) { }
public override Task Invoke(IOwinContext context)
{
return context.Response.WriteAsync("Hello from Pipepart2");
}
}