在 .NET Core 的世界,設定檔是透過 appsettings.json 檔案來完成,
這應該有點類似之前的組態設定檔,只是現在都是以 .json 格式呈現。
以下透過應用程式來說明
建立專案
首先,使用VS 建立主控台應用程式
建立好後,專案結構如下,很輕爽,甚麼都沒有
這時候可以手動加入 appsettings.json 檔案,其實要取別的檔名也是可以
記得需要將檔案設定為輸出
另外,由於需要支援中文格式,可能需要注意檔案格式要 urf-8,不然會亂碼
安裝套件
使用微軟提供的相關套件即可操作,可先安裝以下二個套件
Microsoft.Extensions.Configuration.Json:提供Json 檔案取得組態設定的操作
Microsoft.Extensions.Configuration.Binder:提供更多方便取值的操作
讀取設定檔內容
程式碼撰寫輸出文字
這時,在設定檔中加入相關鍵值,如下圖
程式可指定section key 的方式來取得該物件的個別屬性
或是,直接透過泛型的特性直接轉型為物件,再透過公開的屬性取值
值得一提的是,若設定檔的內容剛好符合某個物件結構,可以一開始就使用 Get<T>() 取得即可
透過組態管理員讀取對應設定檔
以往,有需要會將不同的設定值放到組態檔(設定檔),再透過切換不同的組態管理
取得對應的設定檔,這邊也來試試。
首先加入 appsettings.Debug.json、appsettings.Release.json 檔案
相關內容如下,僅有 message 欄位
接著開啟專案檔(.csproj),將兩個檔案(Debug、Release) 相依為appsettings.json
再觀察方案總管的檔案結構,可以debug與release 兩個檔案已調整至appsettings.json 下
此時若編譯後,查看對應的資料夾發現都會輸出,但這不是我們要的,我們希望若是
Debug 組態時 Release 設定檔不應該輸出,反之亦然。
另外,這邊有個地方需要注意,執行專案會先讀取 appsettings.json 再讀取 appsettings.Debug.json
由於我們希望透過組態檔的切換,達到輸出對應的 appsettings.json 檔;故需再調整 .csproj 檔
,如下圖所示,透過 Choose When 語法即可對應環境輸出檔案,相關文章可參考
可調整組態管理員
以下是輸出檔案,其中appsettings.json 檔案會是固定輸出,其他 Debug 與Release 皆會
對應當時的組態輸出
以上是透過組態管理員輸出對應設定檔,亦有透過「環境變數」的設定方式,後續介紹
沒有留言:
張貼留言