Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net core Build()和Run()函数在ASP.Net核心web应用程序中扮演什么角色?_.net Core_Asp.net Core Mvc_Asp.net Core Webapi - Fatal编程技术网

.net core Build()和Run()函数在ASP.Net核心web应用程序中扮演什么角色?

.net core Build()和Run()函数在ASP.Net核心web应用程序中扮演什么角色?,.net-core,asp.net-core-mvc,asp.net-core-webapi,.net Core,Asp.net Core Mvc,Asp.net Core Webapi,我真的是一个新的编程新手,开始了对.NET核心Web API的开发 这是一段代码: namespace time_api { public class Program { public static void Main(string[] args) { CreateWebHostBuilder(args).Build().Run(); } public static IWebHostBuil

我真的是一个新的编程新手,开始了对.NET核心Web API的开发

这是一段代码:

namespace time_api
{
    public class Program
    {
        public static void Main(string[] args)
        {
            CreateWebHostBuilder(args).Build().Run();
        }

        public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseStartup<Startup>();
    }
}

命名空间时间\u api
{
公共课程
{
公共静态void Main(字符串[]args)
{
CreateWebHostBuilder(args.Build().Run();
}
公共静态IWebHostBuilder CreateWebHostBuilder(字符串[]args)=>
WebHost.CreateDefaultBuilder(args)
.UseStartup();
}
}
我花了更多的时间来理解这段代码。我知道它正在调用一个静态方法
CreateWebHostBuilder
。但是我真的不明白那些是什么
.Build()&.Run()

这就像一个方法(CreateWebHostBuilder)调用另一个方法和另一个方法

这里有
=>
的意思是什么


请帮助我理解

好的,下面是正在发生的事情

  • 您正在调用自己的静态方法,该方法构造一个
    IWebHostBuilder
    ,该接口的目的是允许您配置ASP.Net宿主环境
  • 然后在静态函数返回的
    IWebHostBuilder
    对象上调用实例方法
    Build
    • Build
      函数获取存储在
      IWebHostBuilder
      实现中的配置、扩展等,并使用它来构造实际运行的侦听HTTP请求以处理的
      IWebHost
      实例
  • 您终于在
    IWebHostBuilder.Build
    方法返回的
    IWebHost
    上调用了
    Run
    方法。
    • 该方法实际侦听HTTP请求,将请求映射到一个控制器,实例化该控制器以及任何依赖项,并调用操作方法
    • 此方法“阻塞”或不返回,直到有东西导致程序退出(即按下Ctrl+C)
  • CreateWebHostBuilder(string[]args)
    声明之后的
    =>
    是一种新的方法,用于声明称为“表达式体成员”的方法体

    公共静态IWebHostBuilder CreateWebHostBuilder(字符串[]args){
    返回WebHost.CreateDefaultBuilder(args.UseStartup();
    }
    

    在需要委托或表达式的情况下,可以使用相同的符号
    =>
    创建“lambda”或匿名函数。

    以后,您应该尝试提出更具体的问题,还要研究API文档和语言语法,感谢您的详细介绍。请花些时间浏览您提供的资源。我也注意到了你对我的问题的评论,以后我会问更具体的问题。非常感谢。