You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

RequestDelegate 是否为Endpoint?ASP.NET Core 3.0端点概念疑问

问题

我是ASP.NET Core 3.0的新手,正困惑于Endpoint的概念。微软文档指出:Endpoint是具备以下特性的对象:

  • 通过匹配URL和HTTP方法被选中
  • 通过运行委托被执行

以下是模板代码:

public void Configure(IApplicationBuilder app, IWebHostEnvironment env) {
    if (env.IsDevelopment()) {
        app.UseDeveloperExceptionPage();
    }
    app.UseRouting();
    app.UseEndpoints(endpoints => {
        endpoints.MapGet("/", async context => {
            await context.Response.WriteAsync("Hello World!");
        });
    });
}

请问能否将上述代码中的RequestDelegate(即async context => { await context.Response.WriteAsync("Hello World!"); })称为Endpoint?

回答

嗨,我来帮你理清这个概念——那个RequestDelegate本身不能直接被称为Endpoint,它们是相关但完全不同的东西。

根据你提到的定义,Endpoint是一个完整的“封装体”,它同时包含两个核心要素:

  1. 路由匹配规则:比如你代码里的GET请求方法、/这个URL路径,这是让路由系统找到它的依据
  2. 请求执行逻辑:就是你写的那个异步委托,这是匹配成功后要运行的内容

你在MapGet里传入的匿名委托只是Endpoint的执行逻辑部分,而endpoints.MapGet("/", ...)这个方法的作用,其实是帮你组装出一个完整的Endpoint实例:它把GET请求、根路径这两个匹配规则,和你写的委托绑定在一起,形成了一个能被路由系统识别、选中并执行的完整对象。

简单打个比方:Endpoint就像一份外卖套餐,包含“商家地址(匹配规则)”和“餐品内容(执行委托)”,你单独拿出餐品,不能说它就是整个套餐对吧?

内容的提问来源于stack exchange,提问作者user9623401

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:14:15