JSON 配置
using System;
using System.IO;
public class Program {
public static IConfiguration Configuration { get; set; }
public static void Main (string[] args = null) {
var builder = new ConfigurationBuilder ()
.SetBasePath (Directory.GetCurrentDirectory ())
.AddJsonFile ("appsettings.json");
Configuration = builder.Build ();
Console.WriteLine ($"option1 = {Configuration["Option1"]}");
Console.WriteLine ($"suboption1 = {Configuration["subsection:suboption1"]}");
Console.Write ($"{Configuration["wizards:0:Name"]}, ");
Console.ReadKey ();
}
}
示例使用Json文件
{
"option1": "value1_from_json",
"option2": 2,
"subsection": {
"suboption1": "subvalue1_from_json"
},
"wizards": [
{
"Name": "Gandalf",
"Age": "1000"
},
{
"Name": "Harry",
"Age": "17"
}
]
}
读取节点:
Console.WriteLine($"suboption1 = {Configuration["subsection:suboption1"]}");
读取数组:
Console.Write($"{Configuration["wizards:0:Name"]}");
读取内存匹配并绑定到类
using System;
using System.Collections.Generic;
using Microsoft.Extensions.Configuration;
public class Program {
public static IConfiguration Configuration { get; set; }
public static void Main (string[] args = null) {
// 内存匹配
var dict = new Dictionary<string, string> {
{ "Profile:MachineName", "Rick" },
{ "App:MainWindow:Height", "11" },
{ "App:MainWindow:Width", "11" },
{ "App:MainWindow:Top", "11" },
{ "App:MainWindow:Left", "11" }
};
// 匹配生成器
var builder = new ConfigurationBuilder ();
// 添加内存配置
builder.AddInMemoryCollection (dict);
Configuration = builder.Build ();
var window = new MyWindow ();
// 将匹配绑定到类
Configuration.GetSection ("App:MainWindow").Bind (window);
Console.WriteLine ("Press any key...");
Console.ReadKey ();
}
}
public class MyWindow {
public int Height { get; set; }
public int Width { get; set; }
public int Top { get; set; }
public int Left { get; set; }
}