2.5配置的框架淺析「深入淺出ASP.NET Core系列」
阿新 • • 發佈:2018-11-03
希望給你3-5分鐘的碎片化學習,可能是坐地鐵、等公交,積少成多,水滴石穿,謝謝關注。
配置的使用流程
//第一步.初始化Builder var builder = new ConfigurationBuilder(); //第二步.將Source新增到Builder builder.AddJsonFile("student.json", false, true); //builder.AddInMemoryCollection(dict) //builder.AddXmlFile("/path/tmp.xml") //第三步.呼叫Build var configuration = builder.Build(); //第四步.使用 configurationRoot["key"]
第二步,在將Source新增到Builder的時候,內部做了哪些事情呢?
初始化對應的Source物件,比如Json檔案配置源物件:
JsonConfigurationSource sr=new JsonConfigurationSource() { Path = "settings.json", }
第三步,Build時候在內部,生成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是關鍵的兩個要點。
內部類關係圖
如果所示,如果要自己定義配置,必須實現介面IConfigurationSource,並在內部實現一個對應的Provider,該Provider必須繼承ConfigurationProvider抽象類,並在Provider讀取配置,對配置進行維護、同步、熱更新。具體如何定製,在後續進階和高階進行講解。
我是.NET架構師張飛洪,入行10年有餘,人不堪其憂,吾不改其樂,謝謝您關注我的頭條號。