using Microsoft.Extensions.Configuration;
using System;
using System.Collections.Generic;
namespace ConsoleApp5
{
/// <summary>
/// asp.net core IConfiguration Demo
/// </summary>
class Program
{
static void Main(string[] args)
{
ReadJson();
ReadTypeJson();
ReadXml();
ReadEvn();
ReadMemory();
Console.Read();
}
/// <summary>
/// 读取JSON文件 引入Microsoft.Extensions.Configuration.Json
/// </summary>
static void ReadJson()
{
IConfiguration configuration = new ConfigurationBuilder().SetBasePath(Environment.CurrentDirectory).AddJsonFile("jsconfig.json").Build();
string str = configuration["loginDB:server"];
Console.WriteLine(str);
}
/// <summary>
/// 强类型读取JSON文件 引入Microsoft.Extensions.Configuration.Binder
/// </summary>
static void ReadTypeJson()
{
IConfiguration configuration = new ConfigurationBuilder().SetBasePath(Environment.CurrentDirectory).AddJsonFile("jsconfig.json").Build();
Rootobject rootobject = configuration.Get<Rootobject>();
Console.WriteLine(rootobject.loginName);
}
/// <summary>
/// 读取XML 引入Microsoft.Extensions.Configuration.Xml
/// </summary>
static void ReadXml()
{
IConfiguration configuration = new ConfigurationBuilder().SetBasePath(Environment.CurrentDirectory).AddXmlFile(path: "config.xml").Build();
string str = configuration["book:bookName"];
Console.WriteLine(str);
}
/// <summary>
/// 读取系统环境变量 引入Microsoft.Extensions.Configuration.EnvironmentVariables
/// </summary>
static void ReadEvn()
{
IConfiguration configuration = new ConfigurationBuilder().SetBasePath(Environment.CurrentDirectory).AddEnvironmentVariables().Build();
IEnumerable<KeyValuePair<string, string>> list = configuration.AsEnumerable();
//遍历
foreach (var item in list)
{
var key = item.Key;
var value = item.Value;
Console.WriteLine($"{key}:{value}");
}
Console.WriteLine();
string str = configuration["classpath"];
Console.WriteLine(str);
}
/// <summary>
/// 读取内存
/// </summary>
static void ReadMemory()
{
var data = new List<KeyValuePair<string, string>>();
data.Add(new KeyValuePair<string, string>("loginname", "sysadmin"));
IConfiguration configuration = new ConfigurationBuilder().SetBasePath(Environment.CurrentDirectory).AddInMemoryCollection(data).Build();
string str = configuration["loginname"];
Console.WriteLine(str);
}
public class Rootobject
{
public string loginName { get; set; }
public Logindb loginDB { get; set; }
}
public class Logindb
{
public string server { get; set; }
public string s { get; set; }
}
}
}
config.xml
<?xml version="1.0" encoding="utf-8" ?>
<books>
<book>
<bookName>C++入门</bookName>
<bookPrice>20.00</bookPrice>
</book>
</books>
jsconfig.json
{
"loginName": "sysAdmin",
"loginDB": {
"server": "192.168.0.1",
"s": "sa"
}
}