寫這些東西也是為了增加記憶其次如果能夠幫助到其它童鞋就更好了,有不對的地方請多多指教。
首先創建一個web空項目,里面會包含一個Program.cs和Startup.cs文件,打開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的值,例如:
public Startup(IConfiguration configuration) { Console.WriteLine(configuration["connectionstring"]); }
CrateWebHostBuilder參數繼續看下去,CrateWebHostBuilder方法中有個WebHost.CreateDefaultBuilder(args),首先說說CreateDefaultBuilder是干什么的,其實這個方法主要就是IConfiguration的構建,轉到源代碼可以看見 第一行代碼創建了WebHostBuilder這個對象是貫穿整個CreateDefaultBuilder方法的核心,WebHostBuilder構建了IConfiguration實例以及基礎環境配置,請看下圖
然后繼續往下,下面的if中是對WebHostBuilder環境配置的補充,然后繼續就看見我們前面所提到的cmd配置的實現,在接下來是我們.net core 作為Kestrel啟動的配置請看下圖!
然后再下來是我們的主要配置部分,也就是appsettings.json文件的配置,appsettings.json文件分為兩個部分,1、直接就是appsettings.json文件。2、按照環境不同分別配置不同的appsettings.json配置,例如:我們的開發環境可以是這樣appsettings.Development.json,生成環境可以是appsettings.Production.json,預演環境也是同理,具體請看下圖:
再繼續往下看,接下來是我們的默認日記記錄配置,也就是我們平時在啟動.netcore mvc會看到在控制台和我們vs中的輸出以及調試窗口中會打印一些啟動信息和異常信息,其實就是我們接下來看到的日志記錄,請看下圖:
最后就是我們的依賴注入容器和IIS配置;最后返回最開始創建的WebHostBuilder實例,請看下圖:
好了,暫時寫到這里,后面再繼續分享Startup