在開發“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)