ZetCode

ASP.NET 程序

最后修改于 2025 年 4 月 3 日

在本文中,我们将探讨 ASP.NET 8 中的 Program 类。该类作为 ASP.NET 应用程序的入口点,并配置 Web 主机。

.NET 8 中的 Program 类遵循最小 API 方法,为引导应用程序提供了一种简化的方式。它取代了早期版本中传统的 Startup 类模式。

基本定义

ASP.NET 中的 Program 类是配置和运行 Web 应用程序的入口点。它创建一个 WebApplicationBuilder 实例来设置服务。

.NET 8 中的 Program 类通常使用顶级语句,消除了显式的 Main 方法声明。这使得代码更简洁,同时保持了功能。

Program 类处理依赖项注入配置、中间件管道设置和应用程序启动。它是每个 ASP.NET Core 应用程序的基础。

ASP.NET Program 示例

以下示例演示了具有各种功能的完整 ASP.NET 8 Program 类配置。

Program.cs
var builder = WebApplication.CreateBuilder(args);

// Add services to the container
builder.Services.AddControllers();
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();

var app = builder.Build();

// Configure the HTTP request pipeline
if (app.Environment.IsDevelopment())
{
    app.UseSwagger();
    app.UseSwaggerUI();
}

app.UseHttpsRedirection();
app.UseAuthorization();

app.MapControllers();

app.MapGet("/hello", () => "Hello World!");

app.MapGet("/products", () => 
{
    var products = new[]
    {
        new { Id = 1, Name = "Laptop", Price = 999.99m },
        new { Id = 2, Name = "Mouse", Price = 19.99m }
    };
    return Results.Ok(products);
});

app.Run();

public partial class Program { }

此 Program.cs 文件演示了几个关键的 ASP.NET 8 功能。首先创建 WebApplicationBuilder 来配置服务和应用程序。

该示例展示了控制器、API 资源管理器和 Swagger 的服务注册。开发环境检查仅在开发期间启用 Swagger。

HTTP 管道配置了 HTTPS 重定向和授权。MapControllers 为控制器操作启用了约定式路由。

两个最小 API 端点直接在 Program.cs 中定义。第一个返回一个简单的字符串,第二个以 JSON 格式返回产品数组。

最后的 Program 类部分声明支持集成测试。这是 ASP.NET Core 应用程序中的一种常见模式。

来源

Microsoft ASP.NET Core 基础文档

在本文中,我们探讨了 ASP.NET 8 中的 Program 类。这个核心组件以最少的样板代码配置和启动 ASP.NET 应用程序。

作者

我的名字是 Jan Bodnar,我是一名充满激情的程序员,拥有丰富的编程经验。我从 2007 年开始撰写编程文章。至今,我已撰写了 1400 多篇文章和 8 本电子书。我在教授编程方面拥有超过十年的经验。

列出所有 ASP.NET 教程