ASP.NET Core配置設置之Configuration包
ASP.NET Core 中提供瞭一個Configuration 包,用以應用配置基於配置提供程序建立的鍵值對。這裡以json文件配置的方式,簡單的介紹一下它的用法。
首先定義一個配置文件appsettings.json:
{ "key1": "value1", "key2": -1, "subsection": { "key1": "value2", "key2": -5 } }
如下是基本的用法:
var configBuilder = new ConfigurationBuilder().AddJsonFile("appsettings.json"); var config = configBuilder.Build(); var value1 = config.GetValue<string>("key1"); var value2 = config.GetValue<int>("key2");
.net core將配置操作分佈在ConfigurationBuilder和IConfigurationRoot兩個對象瞭,其中ConfigurationBuilder用來配置數據源,IConfigurationRoot則提供統一的讀取操作。
數據源:
配置提供程序將配置數據從各種配置源讀取到鍵值對,它支持的配置方式比較多,常見的就有:
-
命令行參數
-
環境變量
-
內存中的 .NET 對象
-
設置文件(Ini、 xm、,Json)
-
自定義提供程序
基本上常用的配置數據源都支持瞭,支持多數據源配置,也支持自定義數據源,非常靈活而方便。具體的配置方式可以參考官方文檔ASP.NET Core 中的配置。
CreateDefaultBuilder
為瞭簡化配置,Asp.net core中提供瞭一個函數CreateDefaultBuilder隱式提供瞭對ConfigurationBuilder的調用,順序提供瞭對如下配置文件的配置加載:
-
appsettings.json。
-
appsettings.{Environment}.json。
-
應用在使用入口程序集的 Development 環境中運行時的機密管理器。
-
環境變量。
-
命令行參數
更多細節可以參考官方文檔:設置主機
讀取配置
前面的例子中演示瞭基本的讀取方式:
var value1 = config.GetValue<string>("key1"); var value2 = config.GetValue<int>("key2");
除瞭這種方式外,也可以通過Bind方法按照對象的方式讀取:
class ConfigData { public string Key1 { get; set; } public int Key2 { get; set; } } var cfgData = new ConfigData(); config.Bind(cfgData);
另外,對於子節點的配置,也可以通過GetSection函數定位到子節點,然後按照前面的方式讀取,例如:
var value1 = config.GetSection("subsection").GetValue<string>("key1"); var cfgData = config.GetSection("subsection").Get<ConfigData>();
參考文章
ASP.NET Core 中的配置
到此這篇關於ASP.NET Core配置設置之Configuration包的文章就介紹到這瞭。希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。
推薦閱讀:
- ASP.NET Core中的配置詳解
- ASP.Net Core MVC基礎系列之獲取配置信息
- 淺析.netcore中的Configuration具體使用
- 為什麼ASP.NET Core 數據庫連接串的值和appsettings.json配的不一樣?
- .net core中編輯json配置文件的方法