希望給你3-5分鐘的碎片化學習,可能是坐地鐵、等公交,積少成多,水滴石穿,謝謝關注。
配置的使用流程
//第一步.初始化Builder var builder = new ConfigurationBuilder();
//第二步.將Source添加到Builder builder.AddJsonFile("student.json", false, true);
//builder.AddInMemoryCollection(dict) //builder.AddXmlFile("/path/tmp.xml")
//第三步.調(diào)用Build var configuration = builder.Build(); //第四步.使用
configurationRoot["key"]
第二步,在將Source添加到Builder的時候,內(nèi)部做了哪些事情呢?
初始化對應的Source對象,比如Json文件配置源對象:
JsonConfigurationSource sr=new JsonConfigurationSource() { Path =
"settings.json", }
?
第三步,Build時候在內(nèi)部,生成Provider對象,一個Source對應一個Provider,最后返回ConfigurationRoot,該Root包含所有的Provider。
foreach(var source in sources) { var provider = source.Build();
providers.add(provider); } return new ConfigurationRoot(providers);
第四步,在使用的時候,通過Provider去找到相應的key,返回key值。
foreach(var provider in providers.Reverse()) { string value;
provider.TryGet(key,out value); return value; }
?
通過以上步驟,我們可以看到配置Source和配置Provider是關鍵的兩個要點。
內(nèi)部類關系圖
?
?
如果所示,如果要自己定義配置,必須實現(xiàn)接口IConfigurationSource,并在內(nèi)部實現(xiàn)一個對應的Provider,該Provider必須繼承ConfigurationProvider抽象類,并在Provider讀取配置,對配置進行維護、同步、熱更新。具體如何定制,在后續(xù)進階和高級進行講解。
我是IT人張飛洪,入行10年有余,人不堪其憂,吾不改其樂,謝謝您關注。
熱門工具 換一換