博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
asp.net core 系列 2 启动Startup类介绍
阅读量:5837 次
发布时间:2019-06-18

本文共 2523 字,大约阅读时间需要 8 分钟。

一.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
();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://www.cnblogs.com/tianlong/p/10356027.html

你可能感兴趣的文章
Windows XP倒计时到底意味着什么?
查看>>
运维工程师在干什么学些什么?【致菜鸟】
查看>>
Linux中iptables详解
查看>>
java中回调函数以及关于包装类的Demo
查看>>
maven异常:missing artifact jdk.tools:jar:1.6
查看>>
终端安全求生指南(五)-——日志管理
查看>>
Nginx 使用 openssl 的自签名证书
查看>>
创业维艰、守成不易
查看>>
PHP环境安装套件:快速安装LAMP环境
查看>>
CSS3
查看>>
ul下的li浮动,如何是ul有li的高度
查看>>
C++ primer plus
查看>>
python mysqlDB
查看>>
UVALive 3942 Remember the Word Tire+DP
查看>>
从微软的DBML文件中我们能学到什么(它告诉了我们什么是微软的重中之重)~目录...
查看>>
被需求搞的一塌糊涂,怎么办?
查看>>
c_数据结构_队的实现
查看>>
jquery 选择器总结
查看>>
Qt设置背景图片
查看>>
【阿里云文档】常用文档整理
查看>>