首先我是新人一個寫這些東西也是為了增加記憶,有不對的地方請多多指教。 說回正題,打開Program.cs文件,看到在有個CrateWebHostBuilder方法它有個args的字元串數組參數,這個參數的主要作用是可以在用cmd啟動網站程式的時候在後面傳遞一些參數例如: 這個時候我們是可以註入ICo ...
首先我是新人一個寫這些東西也是為了增加記憶,有不對的地方請多多指教。
說回正題,打開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