首页 / ASP.NET Core / 正文

[ASP.NET Core Razor Pages系列教程]ASP.NET Core Razor Pages中的Program程序入口文件(13)

2758 1 发布于: 2018-12-18 读完约需5分钟

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,我们下节再见。

版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。

上一篇: [ASP.NET Core Razor Pages系列教程]ASP.NET Core Razor Pages PageModel处理程序方法的返回类型(ActionResult)(12)

下一篇: 开源干货!!!.NET Core + Vue.js(iview-admin) 通用动态权限(RBAC)管理系统框架[DncZeus]开源啦!!!

本文永久链接码友网 » [ASP.NET Core Razor Pages系列教程]ASP.NET Core Razor Pages中的Program程序入口文件(13)

分享扩散:

发表评论

登录用户才能发表评论, 请 登 录 或者 注册