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

.NET 6中UseRouting与UseEndPoints缺失及路由配置方式咨询

.NET 6 路由配置新结构与.NET 5→6更新说明

一、Program.cs与Startup.cs合并的核心变化

.NET 6 引入顶级语句和最小API模板,直接把原Startup.cs里的服务配置(ConfigureServices)、中间件/路由配置(Configure)逻辑整合到Program.cs中,省去了冗余的命名空间、类定义和Main方法,代码更精简。

二、路由配置的新工作方式

你提到的UseRouting()和UseEndPoints()并没有被移除,而是在默认模板中被隐式处理了:

  1. 最小API场景(默认模板)
    直接通过app.MapGet()、app.MapPost()等方法定义路由和端点逻辑,底层自动包含路由匹配与端点映射的完整流程:
    var builder = WebApplication.CreateBuilder(args);
    var app = builder.Build();
    
    // 直接配置路由端点
    app.MapGet("/", () => "Hello World!");
    app.MapGet("/api/users/{id}", (int id) => $"User ID: {id}");
    
    app.Run();
    
  2. 兼容.NET 5的显式写法
    如果需要自定义中间件顺序或更精细的路由控制,依然可以手动调用UseRouting()和UseEndPoints(),写法和.NET 5完全兼容:
    var builder = WebApplication.CreateBuilder(args);
    var app = builder.Build();
    
    // 显式启用路由匹配
    app.UseRouting();
    
    // 自定义端点映射
    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllers(); // 映射控制器路由
        endpoints.MapGet("/", context => context.Response.WriteAsync("Hello World!"));
    });
    
    app.Run();
    

三、.NET 5到.NET 6的关键更新点

  • 顶级语句:Program.cs无需再写命名空间、Program类和Main方法,代码直接从变量定义开始
  • 最小API:针对轻量级Web服务场景,无需创建控制器,直接通过MapXXX快速定义路由和业务逻辑
  • 隐式中间件集成:WebApplication默认自动注入常用中间件(包括路由、静态文件等),无需手动调用UseRouting、UseStaticFiles等(特殊场景可手动添加)
  • Startup逻辑整合:原Startup.ConfigureServices的内容迁移到builder.Services配置,原Startup.Configure的中间件/路由逻辑直接写在app对象上

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 17:16:09