ASP.NET Core 配置框架
互聯網 2022/5/1 9:13:11
配置是應用程序發布到各種環境的必備能力
核心組件包
- Microsoft.Extensions.Configuration.Abstractions
- Microsoft.Extensions.Configuration
一個抽象包、一個實現包,也是使用了接口實現分離的設計模式
配置框架
- 以key-value字符串鍵值對的方式抽象了配置
- 支持從各種不同的數據源讀取配置(如從命令行、環境變量、文件中讀?。?/li>
配置框架核心類型
- IConfiguration
- IConfigurationRoot
- IConfigurationSection
- IConfigurationBuilder
配置框架擴展點
- IConfigurationSource
- IConfigurationProvider
配置框架有一個核心的擴展點:就是注入我們自己的配置源,也就是說我們可以指定任意的配置的數據來源,注入到我們的配置框架里面;
public class Program { public static void Main(string[] args) { // ConfigBuilder是用來構建我們配置的核心,這里它使用了一個build模式,也就是說我們所有的設置都是在build中完成,我們可以看到我使用了默認的 ConfigurationBuilder 的實現,用 IConfigurationBuilder 的來接收這個對象 IConfigurationBuilder builder = new ConfigurationBuilder(); // 這里是我們注入了一個內存的配置數據源,這行代碼的作用就是我們注入了一個字典集合作為我們的配置數據源 builder.AddInMemoryCollection(new Dictionary<string, string> { {"key1", "value1" }, {"key2", "value2" }, {"section1:key3", "value3" }, // 把配置分組,用 section 來定義 {"section2:key4", "value4" }, {"section2:section3:key5", "value5" }, }); // builder.Build 用來把所有的配置構建出來,并且我們獲得一個configurationRoot,configurationRoot就表示我們的配置的根,也就是說我們讀取配置的動作都是需要從IConfigurationRoot這個對象讀取的 IConfigurationRoot configurationRoot = builder.Build(); Console.WriteLine(configurationRoot["key1"]); Console.WriteLine(configurationRoot["key2"]); IConfigurationSection section = configurationRoot.GetSection("section1"); Console.WriteLine(section["key3"]); IConfigurationSection section2 = configurationRoot.GetSection("section2"); Console.WriteLine(section2["key4"]); var section3 = section2.GetSection("section3"); Console.WriteLine(section3["key5"]); }

關于找一找教程網
本站文章僅代表作者觀點,不代表本站立場,所有文章非營利性免費分享。
本站提供了軟件編程、網站開發技術、服務器運維、人工智能等等IT技術文章,希望廣大程序員努力學習,讓我們用科技改變世界。
[ASP.NET Core 配置框架]http://www.yachtsalesaustralia.com/tech/detail-318469.html
- 2022-03-01沐雪多租寶商城源碼從.NetCore3.1升級到.Net6的步驟
- 2022-05-04C# 之List底層源碼解析
- 2022-05-04C#中HashTable的用法
- 2022-05-04c# 委托與事件學習
- 2022-05-04[C#] 多分隔符文本分割
- 2022-05-03Halcon的C#二次開發及經驗分享
- 2022-05-03C#內建接口:IConvertible
- 2022-05-02C#枚舉高級應用
- 2022-05-02powerdesigner生成C#代碼(帶注釋)
- 2022-05-02asp.net core 跨域