应用启动的重要类 - Startup
在ASP.NET Core - 从Program和Startup开始这篇文章里面,我们知道了Startup这个类的重要性,它主要负责了:
配置应用需要的服务(服务注册,ConfigureServices方法)。
创建应用的请求处理处理管道(Configure方法)。
在源码分析之前补充一点,虽然我们一般是按约定把这个类名定义成了Startup,但是在真正应用中,我们不是必须要命名为Startup的,这只是一个抽象概念,我们可以命名其他的类名,只需要在UseStartup/UseStartup<TStartup>中显式注册这个启动类即可,系统会把这个启动类注册为单例,例如:
public class Program { public static void Main(string[] args) { BuildWebHost(args).Run(); } public static IWebHost BuildWebHost(string[] args) => WebHost.CreateDefaultBuilder(args) .UseStartup<YourStartupClass>() .Build(); } public class YourStartupClass { public void ConfigureService(IServiceCollection services) { } public void Configure(IApplicationBuilder app) { } }