程序開發過程中,配置文件是必不可少的,之前.net 開發讀取配置文件都會先引用System.Configuration類庫,在.net Core開發中可以通過引用Microsoft.Extensions.Configuration實現這些功能,不但可以方便的讀取之前類似Web.config/App.Config的XML文件,而且還能很方便的讀取JSON、INI格式的文件。
注:目前.net Core版本已到1.1.0版本,Visual Studio Code 1.7.2,本人也已及時做了更新。
1.Microsoft.Extensions.Configuration引用
新建項目DotNetCoreConfig並在project.json中添加Microsoft.Extensions.Configuration的引用,如下圖所示:
在dependencies下添加對Microsoft.Extensions.Configuration的引用,版本1.1.0,並重新執行Restore操作。
2.下例演示了如何測試把 Configuration
作為一個鍵/值對存儲來處理。
運行輸出結果:
3.Configuration讀取XML配置
在項目根目錄心中App.config文件,如下:
<?xml version="1.0" encoding="utf-8"?> <DotNetCoreConfig> <key1 key="DotNet" value="Core"></key1> <key2>Hello</key2> </DotNetCoreConfig>
在dependencies下添加對Microsoft.Extensions.Configuration.XML的引用,版本1.1.0,並重新執行Restore操作。
{ "version": "1.0.0-*", "buildOptions": { "debugType": "portable", "emitEntryPoint": true }, "dependencies": {}, "frameworks": { "netcoreapp1.1": { "dependencies": { "Microsoft.NETCore.App": { "type": "platform", "version": "1.1.0" }, "Microsoft.Extensions.Configuration": "1.1.0", "Microsoft.Extensions.Configuration.XML":"1.1.0" }, "imports": "dnxcore50" } } }
代碼如下:
1 public static void Main(string[] args) 2 { 3 var builder=new ConfigurationBuilder(); //構建ConfigurationBuilder實例 4 builder.AddInMemoryCollection(); //提供內容內存類型的提供程序 5 builder.SetBasePath(Directory.GetCurrentDirectory()); //指定配置文件所在的目錄 6 builder.AddXmlFile("app.config"); //加載配置文件 7 var config=builder.Build(); 8 9 var value1=config["key1:key"]; //獲取Key1節點下的Key值 10 Console.WriteLine(value1); 11 Console.WriteLine(config["key2"]); //獲取key2節點下的值 12 Console.ReadLine(); 13 }
啟動調試可以看到變量config如下:
輸出結果如下:
4.Configuration讀取JSON配置
在項目根目錄心中App.Json文件,如下:
{ "Key1":"dotNetCore", "Key2":"Test" }
在dependencies下添加對Microsoft.Extensions.Configuration.XML的引用,版本1.1.0,並重新執行Restore操作。
{ "version": "1.0.0-*", "buildOptions": { "debugType": "portable", "emitEntryPoint": true }, "dependencies": {}, "frameworks": { "netcoreapp1.1": { "dependencies": { "Microsoft.NETCore.App": { "type": "platform", "version": "1.1.0" }, "Microsoft.Extensions.Configuration": "1.1.0", "Microsoft.Extensions.Configuration.XML":"1.1.0", "Microsoft.Extensions.Configuration.JSON":"1.1.0" }, "imports": "dnxcore50" } } }
讀取App.json配置的代碼如下:
public static void Main(string[] args) { var builder=new ConfigurationBuilder(); //構建ConfigurationBuilder實例 //builder.AddInMemoryCollection(); //提供內容內存類型的提供程序 builder.SetBasePath(Directory.GetCurrentDirectory()); //指定配置文件所在的目錄 builder.AddJsonFile("app.json"); //builder.AddXmlFile("app.config"); //加載配置文件 var config=builder.Build(); //var value1=config["key1:key"]; //獲取Key1節點下的Key值 var value1=config["key1"]; Console.WriteLine(value1); Console.WriteLine(config["key2"]); //獲取key2節點下的值 Console.ReadLine(); }
啟動調試可以看到變量config如下:
輸出結果如下: