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。

推薦閱讀: