在 .net core中,配置文件的讀取是經過IConfiguration來提供的,程序集是Microsoft.Extensions.Configuration
,對應的有一系列的實現,經過這些實現,能夠讀取Json/Xml/ini等類型的配置文件。json
在本節示例中,咱們使用Json配置文件作演示。app
Json是咱們經常使用的配置文件格式,能夠很是直觀的體現配置文件的層級結構。ui
新建一個 .net core 控制檯應用程序,併爲項目添加appsettings.json
文件,文件內容以下:.net
{ "Name": "Jerry", "option1": "value1_from_json", "option2": 2, "subsection": { "suboption1": "subvalue1_from_json" }, "wizards": [ { "Name": "Gandalf", "Age": "1000" }, { "Name": "Harry", "Age": "17" } ] }
添加Microsoft.Extensions.Configuration.Json
引用,隨後使用下面的代碼建立IConfiguartion對象:code
public static IConfiguration Configuration { get; set; } //構建Configuration var builder = new ConfigurationBuilder() .SetBasePath(AppDomain.CurrentDomain.BaseDirectory) .AddJsonFile("appsettings.json"); Configuration = builder.Build();
使用IConfiguartion對象獲取配置信息:orm
static void ReadConfiguration() { Console.WriteLine($"Name = {Configuration["Name"]}"); Console.WriteLine($"option1 = {Configuration["Option1"]}"); Console.WriteLine($"option2 = {Configuration["option2"]}"); Console.WriteLine($"suboption1 = {Configuration["subsection:suboption1"]}"); Console.WriteLine(); Console.WriteLine("Wizards:"); Console.Write($"{Configuration["wizards:0:Name"]}, "); Console.WriteLine($"age {Configuration["wizards:0:Age"]}"); Console.Write($"{Configuration["wizards:1:Name"]}, "); Console.WriteLine($"age {Configuration["wizards:1:Age"]}"); Console.WriteLine(); Console.WriteLine("Press a key..."); Console.ReadKey(); }
使用強類型讀取配置信息:對象
static void ConvertConfiguration() { //讀取整個配置文件 var appSettings = Configuration.Get<AppSettings>(); Console.WriteLine("AppSettings = "); Console.WriteLine(JsonConvert.SerializeObject(appSettings, Formatting.Indented)); //讀取某個節點 IList<Wizard> wizards = Configuration.GetSection("wizards").Get<IList<Wizard>>(); Console.WriteLine("wizards = "); Console.WriteLine(JsonConvert.SerializeObject(wizards, Formatting.Indented)); Console.WriteLine("Press a key..."); Console.ReadKey(); }
== 注意:在1.0版本中使用Bind方法轉換,2.0之後能夠使用Get方法更加方便的獲取強類型文件 ==文檔
== 注意:當使用多個配置文件,且配置文件中包含相同的鍵時,後添加的配置文件中的鍵值將覆蓋先添加的鍵值 ==get
其它類型的配置文件使用方法類似,再也不贅述。it
參考文檔:https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/startup?view=aspnetcore-2.1