Intern Day7 - ASP.Net Core管道
其实这块我没太懂,因为听的东西都是中间件带一点管道的……
管道是ASP.NET Core WEB应用的核心。

undefined
如何配置管道?也就是在我们的管道中布置中间件(有很多种扩展方法,都是由ApplicationBuilder这个接口来提供的)
在ApplicationBuilder.cs源码中有部分代码(即 使用 IApplicationBuilder 创建中间件管道 ),我们可以参考一下来理解一下管道:
//构建管道的方法
public RequestDelegate Build()
{
// 中间件,就是用来报错的(没有终点就报错)
RequestDelegate app = context =>
{
// If we reach the end of the pipeline, but we have an endpoint, then something unexpected has happened.
// This could happen if user code sets an endpoint, but they forgot to add the UseEndpoint middleware.
var endpoint = context.GetEndpoint();
var endpointRequestDelegate = endpoint?.RequestDelegate;
if (endpointRequestDelegate != null)
{
var message =
$"The request reached the end of the pipeline without executing the endpoint: '{endpoint!.DisplayName}'. " +
$"Please register the EndpointMiddleware using '{nameof(IApplicationBuilder)}.UseEndpoints(...)' if using " +
$"routing.";
throw new InvalidOperationException(message);
}
context.Response.StatusCode = StatusCodes.Status404NotFound;
return Task.CompletedTask;
};
//重要的是这两句话,管道就是这两句话构成的
foreach (var component in _components.Reverse())
{
app = component(app); // 穿进去一个委托出来一个委托
}
return app;
}
参考视频
分类:
.NET后端开发
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」