blazor应用程序中program.cs的格式是什么



我刚刚开始学习Blazor,并在VS中创建了一个示例Blazor应用程序。

查看生成的代码,我注意到文件program.cs不是一个类或方法,因为它包含以下代码:

using BlazingPizza.Data;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddRazorPages();
builder.Services.AddServerSideBlazor();
// Register the pizzas service
builder.Services.AddSingleton<PizzaService>();
var app = builder.Build();
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Error");
}
app.UseStaticFiles();
app.UseRouting();
app.MapRazorPages();
app.MapBlazorHub();
app.MapFallbackToPage("/_Host");
var scopeFactory = app.Services.GetRequiredService<IServiceScopeFactory>();
using (var scope = scopeFactory.CreateScope())
{
var db = scope.ServiceProvider.GetRequiredService<PizzaStoreContext>();
if (db.Database.EnsureCreated())
{
SeedData.Initialize(db);
}
}
app.Run();

这个文件中的代码看起来更像是一个脚本,而不是C#中的类、方法或类似构造。

这个文件的格式是什么?主函数在哪里?主函数如何与此代码/文件相关?

编辑1

我的问题和被强调为重复的问题之间的区别是,我不知道C#9中的这个新功能,如果我知道它,那么我可以在Microsoft文档或在线中找到更多关于它的信息。

重复的问题是关于这个新功能的,如果你不熟悉它,你不会搜索它,也永远不会得到答案。

这是C#9中的一个新特性,称为顶级语句。

基本上,每个项目都可以有一个带有顶级语句的.cs文件,它将取代主方法。

最新更新