Program类是ASP.NET Core 应用程序的一个入口点,它位于应用程序的根目录下,它定义了.NET Core应用程序所需的服务和中间件组件。
Program类默认代码如下:
var builder = WebApplication.CreateBuilder(args); var app = builder.Build(); app.MapGet("/", () => "Hello World!"); app.Run();
注册服务和配置请求管道:
//添加Razor Pages 服务 builder.Services.AddControllersWithViews();
//添加Razor Pages 服务 builder.Services.AddRazorPages();
//为应用程序注册 Identity 服务 builder.Services.AddDefaultIdentity();
//注入DbContext builder.Services.AddDbContext<AppDbContext>(options => options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection")));
//依赖注入: //Singleton 单例,该实例在需要它的所有组件之间共享。因此始终使用同一实例。 builder.Services.AddSingleton<Isite, site>(); //Scoped 范围,在对应用程序的每个请求上都会创建一个范围,因此每个请求将创建一次注册为Scoped的任何组件。 builder.Services.AddScoped<Isite, site>(); //Transient 短暂,在每次被请求时都会创建,并且永不共享。 builder.Services.AddTransient<Isite, site>();
//添加开发模式下异常处理中间件 if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); }
//生产环境下添加异常处理中间件 if (!app.Environment.IsDevelopment()) { app.UseExceptionHandler("/Home/Error"); }
//添加https跳转中间件,该中间件强制所有的http请求跳转到https app.UseHttpsRedirection();
//添加静态文件中间件,该中间件启用静态文件服务 app.UseStaticFiles();
//添加路由中间件,该中间件将请求匹配到终结点 app.UseRouting();
//添加Authorization 中间件 app.UseAuthorization ();
//添加 Authentication 中间件 app.UseAuthentication();
//添加路由终结点中间件,该中间件执行匹配的终结点 app.UseEndpoints(endpoints => { endpoints.MapControllers(); });
//添加路由中间件匹配进入的url请求并且映射他们到actions方法 app.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}");
标签:Core,app,中间件,应用程序,Program,Services,NET,添加,builder From: https://www.cnblogs.com/microsoft-zh/p/17893789.html