Startup 用于配置服务和应用的请求管道。
The Startup class
Asp.Net Core 应用使用StartUp类。StartUp类:
1、可以选择性的包含ConfigureServices 方法配置应用的服务。
2、必须包含一个Configure 方法,创建应用的请求处理管道。
ConfigureServices
和 Configure 方法在应用启动时由运行时调用。
1 public class Startup 2 { 3 // Use this method to add services to the container. 4 public void ConfigureServices(IServiceCollection services) 5 { 6 ... 7 } 8 9 // Use this method to configure the HTTP request pipeline. 10 public void Configure(IApplicationBuilder app) 11 { 12 ... 13 } 14 }
用 WebHostBuilderExtensions UseStartup<TStartup> 方法明确 Startup
,如下:
public class Program { public static void Main(string[] args) { BuildWebHost(args).Run(); } public static IWebHost BuildWebHost(string[] args) => WebHost.CreateDefaultBuilder(args) .UseStartup<Startup>() .Build(); }
StartUp类构造函数接受 host 定义的依赖项。一个常见的使用依赖注入启动类是注入ihostingenvironment通过环境配置服务:
public class Startup { public Startup(IHostingEnvironment env) { HostingEnvironment = env; } public IHostingEnvironment HostingEnvironment { get; } public void ConfigureServices(IServiceCollection services) { if (HostingEnvironment.IsDevelopment()) { // Development configuration } else { // Staging/Production configuration } } }
一个可代替的方式注入IHostingStartup是使用约定的方式。应用为不同的环境定义独立的Startup类(比如:StartupDevelopment),运行时会选择适当的启动类。名称后缀与当前环境匹配的类是优先的。如果应用运行在开发环境,同时包含Startup
类和 StartupDevelopment 类,StartupDevelopment 类将会被使用。
The ConfigureServices method
1、可选
2、在 Configure 方法之前由Web host调用来配置应用程序的服务
3、配置选项按约定设置
翻译于官方文档。未完待续,有错误欢迎指正。