首先我是新人一个写这些东西也是为了增长记忆,有不对的地方请多多指教。json
说回正题,打开Program.cs文件,看到在有个CrateWebHostBuilder方法它有个args的字符串数组参数,这个参数的主要做用是能够在用cmd启动网站程序的时候在后面传递一些参数例如:数组
c:\Users>E:\dotnetcore\demo\\bin\Debug\netcoreapp2.2\RazorMvcDemo1.dll connectionstring="server=.;database=test;uid=sa;pwd=123456"
这个时候咱们是能够注入IConfiguration这个实例拿到connectionstring的值,例如:mvc
public Startup(IConfiguration configuration) { Console.WriteLine(configuration["connectionstring"]); }
CrateWebHostBuilder参数继续看下去,CrateWebHostBuilder方法中有个WebHost.CreateDefaultBuilder(args),首先说说CreateDefaultBuilder是干什么的,其实这个方法主要就是IConfiguration的构建,转到源代码能够看见 第一行代码建立了WebHostBuilder这个对象是贯穿整个CreateDefaultBuilder方法的核心,WebHostBuilder构建了IConfiguration实例以及基础环境配置,请看下图app
而后继续往下,下面的if中是对WebHostBuilder环境配置的补充,而后继续就看见咱们前面所提到的cmd配置的实现,在接下来是咱们.net core 做为Kestrel启动的配置请看下图!网站
而后再下来是咱们的主要配置部分,也就是appsettings.json文件的配置,appsettings.json文件分为两个部分,一、直接就是appsettings.json文件。二、按照环境不一样分别配置不一样的appsettings.json配置,例如:咱们的开发环境能够是这样appsettings.Development.json,生成环境能够是appsettings.Production.json,预演环境也是同理,具体请看下图:ui
再继续往下看,接下来是咱们的默认日记记录配置,也就是咱们平时在启动.netcore mvc会看到在控制台和咱们vs中的输出以及调试窗口中会打印一些启动信息和异常信息,其实就是咱们接下来看到的日志记录,请看下图:spa
最后就是咱们的依赖注入容器和IIS配置;最后返回最开始建立的WebHostBuilder实例,请看下图:.net
好了,暂时写到这里,后面再继续分享Startup调试