在開發“RabbitCloud”專案時,使用配置檔案發現會有很多重複值,所以我基於”Microsoft.Extensions.Configuration”寫了一個擴充套件庫,來豐富對配置的支援。
實際案例——“RabbitCloud”
之前,我是這樣的
因為公司ip和家裡機器的ip不一致,所以經常需要切換配置檔案。
但根據這份配置檔案,我更改健康檢查的主機和埠就意味著我得改三個地方,然而一般情況下這三個地方都是一致的,如果這時候我能定義一個變數“ServiceHost”,然後這三個地方使用這個變數就好了。
現在,我是這樣的
如果有變更需要只需改動幾個變數值就可以了,不需要在滿屏的配置檔案裡面去檢視、搜尋替換了。
特性
支援的配置源
- JSON
- XML
- Consul
- Ini
- Yaml
- EnvironmentVariables
- CommandLine
- SQL Server/MySQL…
- ……
寫了這麼多其實是廢話。。只不過是為了列出一些常用的配置源。
因為這個擴充套件元件是基於“Microsoft.Extensions.Configuration”框架在內部進行了一次二次渲染而已,所以只要是適配了“Microsoft.Extensions.Configuration”的配置源都可以進行支援。
配置資訊變更重新渲染
當配置檔案變更,進行Reload時,模板會自動進行重新渲染,不用擔心渲染之後配置監控不可用的問題。
Demo
配置檔案如下:
程式碼如下:
效果1(dotnet run):
效果2(dotnet run --ServiceHost=localhost):
效果3(dotnet run --ServiceHost=localhost --ServicePort=5000):
地址
原始碼:https://github.com/RabbitTeam/Rabbit-Extensions
nuget:https://www.nuget.org/packages/Rabbit.Extensions.Configuration
寫在最後
RabbitCloud核心部分已經構建的差不多了,近期會寫一篇文章來介紹說明。先放一些圖。
.NET技術棧討論QQ群:384413261(點選加入 .NET Group)