ASP.NET Core 中的Main方法详解
在ASP.NETCore项目中,我们有一个名为Program.cs的文件。在这个文件中,我们有一个publicstaticvoidMain()方法。
publicclassProgram { publicstaticvoidMain(string[]args) { CreateWebHostBuilder(args).Build().Run(); } publicstaticIWebHostBuilderCreateWebHostBuilder(string[]args)=> WebHost.CreateDefaultBuilder(args) .UseStartup(); }
如果您对传统的.NETFramework有任何使用经验,则知道控制台应用程序具有Main()方法,它是该控制台程序的入口。
但今天,我们正在创建一个ASP.NETCoreWeb应用程序而不是控制台应用程序。因此,我们想到的一个显而易见的问题是。为什么我们也会有一个Main()方法?
所以这个知识点,要记住的。ASP.NETCore应用程序最初作为控制台应用程序启动,而Program.cs文件中的Main()方法就是入口。
因此,当运行时执行我们的应用程序时,它会查找此Main()方法以及执行配置开始的地方。
这个Main()方法配置asp.netCore并启动它,此时,它成为一个asp.netCoreWeb应用程序。因此,如果你跟踪一下Main()方法,它会调用CreateWebHostBuilder()方法传递命令行参数。
然后你就可以看到,CreateWebHostBuilder()方法返回一个实现IWebHostBuilder的对象。在此对象上,调用Build()方法,会将我们的ASP.NETCore应用程序生成并且托管到服务器上。在服务器上的程序调用Run()方法,该方法运行后Web应用程序并开始侦听传入的HTTP请求。CreateWebHostBuilder()方法调用静态类WebHost中的静态方法CreateDefaultBuilder()。CreateDefaultBuilder()方法会在服务器上创建一个已经预设置好的默认值。CreateDefaultBuilder()方法执行多项操作来创建服务器.
我们在后面的视频中详细讨论CreateDefaultBuilder()中的所有方法。
而现在你只需要了解CreateDefaultBuilder()方法是用于在服务器上创建程序配置的默认值而存在。它作为设置服务器的一部分,还使用了IWebHostBuilder接口中的UseStartup()的扩展方法来配置Startup类。如果您不熟悉扩展方法的概念,那么你该去补课了。
按照微软的规则,ASP.NETCore中的启动类名为Startup。这个类有2种方法。
publicclassStartup { publicvoidConfigureServices(IServiceCollectionservices) {} publicvoidConfigure(IApplicationBuilderapp,IHostingEnvironmentenv) { if(env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.Run(async(context)=> { awaitcontext.Response.WriteAsync("HelloWorld!"); }); } }
C#
Startup类虽然只有两个方法,但是这两个方法做了非常重要的事情:
ConfigureServices()方法配置应用程序所需的服务
Configure()方法配置应用程序的请求处理管道
我们理解这两种方法的作用是非常重要。
在后面的文章中,会大量使用这两种方法。到时候需要大家多次加深印象。
感谢大家对毛票票的支持。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。