asp.net core配置项示例代码
生活随笔
收集整理的這篇文章主要介紹了
asp.net core配置项示例代码
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1、IConfigurationSource:表示一個(gè)配置源,其Build方法生成的IConfigurationProvider用于從當(dāng)前配置源中讀取key-value值(TryGey讀取、Set設(shè)置鍵值、Load加載配置源到key-value集合、GetChildKey獲取根據(jù)前綴key獲取子key集合,并將earlierKeys添加到返回的字符串集合中)。IConfigurationProvider有直接實(shí)現(xiàn)類ConfigurationProvider,自定義IConfigurationProvider的時(shí)候,一般直接繼承ConfigurationProvider類。
2、IConfigurationBuilder 用于 IConfigurationRoot(從IConfiguration繼承) 對(duì)象,這也是最終供我們使用的key-value集合 。IConfigurationBuilder接口中 Sources 屬性維護(hù)了一系列的 IConfigurationSource 列表。Properties 屬性維護(hù)了和文件相關(guān)的字典。
static void Main(string[] args)
{
//1、創(chuàng)建IConfigurationBuilder
IConfigurationBuilder builder = new ConfigurationBuilder();
//2、創(chuàng)建配置源并添加到Builder中 IConfigurationSource
//2、1系統(tǒng)自帶的IConfigurationSource
List<KeyValuePair<string, string>> InitialData = new List<KeyValuePair<string, string>>();
InitialData.Add(new KeyValuePair<string, string>("name", "caoruipeng"));
InitialData.Add(new KeyValuePair<string, string>("info:age", "29"));
InitialData.Add(new KeyValuePair<string, string>("info:school", "北華大學(xué)"));
InitialData.Add(new KeyValuePair<string, string>("user:name", "北華大學(xué)"));
IConfigurationSource source = new MemoryConfigurationSource() { InitialData = InitialData };
builder.Add(source);
//2、2自定義IConfigurationSource
IDictionary<string, string> data = new Dictionary<string, string>();
data.Add("dbkey", "dbvalue");
IConfigurationSource dbSource = new DBConfigurationSource(data);
builder.Add(dbSource);
//3、創(chuàng)建key-value集合
IConfigurationRoot configuration = builder.Build();
//4、獲取key-value
string value = configuration["name"];
value = configuration.GetValue<string>("name");
Console.WriteLine($"key:name,value:{value}");
value = configuration.GetValue<string>("dbkey");
Console.WriteLine($"key:dbkey,value:{value}");
IConfigurationSection section = configuration.GetSection("info");
}
/// <summary>
/// 自定義配置源
/// </summary>
public class DBConfigurationSource : IConfigurationSource
{
IDictionary<string, string> data = new Dictionary<string, string>();
public DBConfigurationSource(IDictionary<string, string> data)
{
this.data = data;
}
public IConfigurationProvider Build(IConfigurationBuilder builder)
{
return new DBConfigurationProvider(data);
}
}
/// <summary>
/// 自定義配置源的Provider,用于從配置源中讀取key-value值
/// </summary>
public class DBConfigurationProvider : ConfigurationProvider
{
public DBConfigurationProvider(IDictionary<string, string> data)
{
Data = data;
}
public override void Load()
{
base.Load();
}
}
3、系統(tǒng)自帶的配置源 也就是IConfigurationSource的實(shí)現(xiàn)類
3.1 MemoryConfigurationSource:從內(nèi)存中加載讀取key-value。
3.2 ChainedConfigurationSource:直接維護(hù)了一個(gè)IConfiguration對(duì)象,通過IConfiguration加載讀取key-value配置。
3.3 CommandLineConfigurationSource:從命令行加載讀取key-value,從命令行讀取命令,按 = 分割為key-value。
3.4 EnvironmentVariablesConfigurationSource:從環(huán)境變量中加載讀取key-value。
3.5 FileConfigurationSource:抽象類,從文件中加載配置
3.5.1 JsonConfigurationSource : FileConfigurationSource:從json配置文件中加載配置。
3.5.2 IniConfigurationSource : FileConfigurationSource:從ini配置文件中加載配置
3.5.3 XmlConfigurationSource : FileConfigurationSource:從xml配置文件中加載配置
3.6 StreamConfigurationSource:抽象類,從Stream流中加載配置
3.6.1 JsonStreamConfigurationSource:StreamConfigurationSource:從Json流中加載配置。
3.6.2 XmlStreamConfigurationSource:StreamConfigurationSource:從xml流中加載配置。
3.3.3 IniStreamConfigurationSource:StreamConfigurationSource:從ini流中加載配置。
總結(jié)
以上是生活随笔為你收集整理的asp.net core配置项示例代码的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 互联网文本内容安全:腾讯云天御AI对抗实
- 下一篇: 在.NET开发中的单元测试工具之(1)—