![](https://img.haomeiwen.com/i13752393/36165787fffcf1fa.png)
Program
public class Program
{
public static void Main(string[] args) => CreateHostBuilder(args).Build().Run();
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder => webBuilder.UseStartup<Startup>());
}
CreateDefaultBuilder 封装了Program.cs中大部分常见的代码,添加了Kestrel、Configuration、Logging、IISIntegration中间件,同时配置ContentRoot和DefaultServiceProvider
- UseKestrel 指定服务器使用 Kestrel,若使用HttpSys,需使用UseHttpSys。
- UseContentRoot 指定根目录
- ConfigureAppConfiguration 读取配置文件(appsettings.json等)
- ConfigureLogging 配置日志处理程序
- UseIISIntegration 将应用程序配置为在 IIS 中运行。如果应用程序没有使用 IIS 作为反向代理,那么 UseIISIntegration 不会有任何效果。因此,即使应用程序在非 IIS 方案中运行,也可以安全调用这种方法。
- UseDefaultServiceProvider 设置默认的依赖注入容器。
UseStartup<Startup>: 指定Startup为启动配置文件. 在Startup中, 将进行两个比较重要的工作, 服务&&容器的依赖注入(DI)和中间件(middleware&&管道)的配置。
- ConfigureServices方法是注册服务到容器中
- Configure方法是配置中间件
详细解析可以参考以下博客
https://www.cnblogs.com/neverc/p/7988226.html
https://github.com/zdz72113/NETCore_BasicKnowledge.Examples/blob/master/Documents/1.1%20%5BBasic%5D%20ASP.NET%20Core%20%E7%9A%84%E5%90%AF%E5%8A%A8%E5%92%8C%E8%BF%90%E8%A1%8C%E6%9C%BA%E5%88%B6.md
网友评论