分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

asp.net core 系列 2 启动Startup类介绍

发布时间:2023-09-06 02:32责任编辑:董明明关键词:暂无标签

一.Startup类

ASP.NET Core 应用是一个控制台应用,它在其 Program.Main 方法中创建 Web 服务器。其中Main方法是应用的托管入口点,Main 方法调用 WebHost.CreateDefaultBuilder来创建 Web 主机,自动分配了 Kestrel Web 服务器。IWebHostBuilder 的 Build 方法生成 IWebHost对象调用Run 方法启动WebHost,此时托管应用并开始侦听 HTTP 请求。代码如下所示:

 1 public class Program 2 ????{ 3 ????????public static void Main(string[] args) 4 ????????{ 5 ????????????CreateWebHostBuilder(args).Build().Run(); 6 ????????} 7 ?8 ????????public static IWebHostBuilder CreateWebHostBuilder(string[] args) => 9 ????????????WebHost.CreateDefaultBuilder(args)10 ????????????????.UseStartup<Startup>();11 }

   1.1 应用启动 Startup类

   IWebHostBuilder类的UseStartup调用启动类,按照约定命名为 Startup,该类必须是公共类,用于定义请求处理管道配置应用所需的任何服务。当应用启动时会调用 ConfigureServices 和 Configure两个方法。ConfigureServices 用于注入服务, Configure用于响应HTTP请求。

public class Startup{ ???// Use this method to add services to the container. ???public void ConfigureServices(IServiceCollection services) ???{ ???????... ???} ???// Use this method to configure the HTTP request pipeline. ???public void Configure(IApplicationBuilder app) ???{ ???????... ???}}

1.2  ConfigureServices方法

 ConfigureServices 方法负责注入服务。该方法在WebHost的Configure方法之前被调用,将服务添加到服务容器使得它们可以通过依赖注入在应用程序中使用,在webHost启动之前会加载该方法中的服务。典型模式是调用Add{service}方法注入服务,然后调用所有 services.Configure{Service} 方法。注入服务后,使其在应用和 Configure 方法中使用服务。在参数IServiceCollection (服务容器)上有 Add[Service] 扩展方法,用于添加自带的framework框架服务(例如添加EF,identity,mvc服务)也可以在IServiceCollection上注入自定义服务。

 public void ConfigureServices(IServiceCollection services) ???????{ ???????????//注入 Razor Pages 和 MVC 需要的服务 ???????????services.AddMvc(); ???????}

1.3 Configure方法

Configure方法用于指定应用响应 HTTP 请求的方式。可将中间件注册到IApplicationBuilder 实例来配置请求管道。下面示例注册的中间件包括: ExceptionHandler异常/错误处理、HttpsRedirection重定向、StaticFiles静态文件服务器、CookiePolicy策略实施、mvc等中间件。每一个use开头的扩展方法将一个中间件添加到IApplicationBuilder请求管道中。

public void Configure(IApplicationBuilder app, IHostingEnvironment env) ???????{ ???????????if (env.IsDevelopment()) ???????????{ ???????????????app.UseDeveloperExceptionPage(); ???????????} ???????????else ???????????{ ???????????????app.UseExceptionHandler("/Error"); ???????????????app.UseHsts(); ???????????} ???????????app.UseHttpsRedirection(); ???????????app.UseStaticFiles(); ???????????app.UseCookiePolicy(); ???????????app.UseMvc(); ???????}

  

总结: (1) Program的main方法用于创建WebHost服务,调用启动类Startup。

    (2) Startup中的ConfigureServices方法用于将服务注入到 IServiceCollection 服务容器中。

    (3) Startup中的Configure方法用于应用响应 HTTP 请求,将中间件注册到 ApplicationBuilder中来配置请求管道。

 参考文献:

    https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/startup?view=aspnetcore-2.1

asp.net core 系列 2 启动Startup类介绍

原文地址:https://www.cnblogs.com/tianlong/p/10356027.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved