Program程序入口文件
与传统的ASP.NET应用程序不同,ASP.NET Core应用程序其实是一个在Program.Main()
方法中创建了WEB服务的控制台应用程序。其中Main()
方法为整个ASP.NET Core应用程序的入口点,比如默认生成的Program.cs
文件模板:
public class Program
{
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build().Run();
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>();
}
托管.NET Core应用程序的主机利用Program
程序入口主要完成以下两个操作:
- 加载.NET Core运行时(.NET Core runtime)
- 使用第一行命令行参数作为托管包含了入口点(
Main
方法)和开始代码执行的二进制文件的路径
Main
方法调用WebHost.CreateDefaultBuilder()
方法以创建一个WEB主机服务,WebHost.CreateDefaultBuilder()
方法遵循设计模式中的建造者模式,同时还内置了配置用于托管.NET Core应用程序的主机服务(如:UseKestrel)和配置启动类(startup)的方法:UseStartup<Startup>()
。上面的示例代码中,默认指定了Kestrel
作为WEB服务,在可用的情况下,ASP.NET Core的WEB主机将尝试运行在IIS中。
微软官方还提供了IWebHostBuilder
的多个扩展方法,比如:
UseContentRoot
方法用以指定WEB主机的内容根目录UseWebRoot
方法用以指定WEB主机的wwwroot的目录UseHttpSys
方法用以指定将主机运行在HTTP.sys中
更多关于IWebHostBuilder
请见官方文档
Startup启动类
如上的示例代码中,WebHost
提供了一个UseStartup
的方法,我们可以通过这个方法来指定启动类文件名,默认的启动类名为Startup
,你也可以自定义其他名称,只需要和UseStartup
方法对应即可。
Startup
类是定义请求处理管道和配置应用程序所需服务的地,一个启动类必须包含如下的方法:
public class Startup
{
// 此方法在运行时被调用,此方法用以向窗口添加程序所需的服务
public void ConfigureServices(IServiceCollection services)
{
}
// 此方法在运行时被调用,此方法用以配置HTTP请求的处理管道
public void Configure(IApplicationBuilder app)
{
}
}
关于详细的Startup启动类,我们将在下一节介绍。
好了,本节的Program程序入口文件就介绍到这里。我是Rector,我们下节再见。
版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。
发表评论
登录用户才能发表评论, 请 登 录 或者 注册