Configuration Extensions - 簡化配置,讓你配置支持變量


在開發“RabbitCloud”項目時,使用配置文件發現會有很多重復值,所以我基於”Microsoft.Extensions.Configuration”寫了一個擴展庫,來豐富對配置的支持。

實際案例——“RabbitCloud”

之前,我是這樣的

image

因為公司ip和家里機器的ip不一致,所以經常需要切換配置文件。

但根據這份配置文件,我更改健康檢查的主機和端口就意味着我得改三個地方,然而一般情況下這三個地方都是一致的,如果這時候我能定義一個變量“ServiceHost”,然后這三個地方使用這個變量就好了。

現在,我是這樣的

image

如果有變更需要只需改動幾個變量值就可以了,不需要在滿屏的配置文件里面去查看、搜索替換了。

特性

支持的配置源

  1. JSON
  2. XML
  3. Consul
  4. Ini
  5. Yaml
  6. EnvironmentVariables
  7. CommandLine
  8. SQL Server/MySQL…
  9. ……

寫了這么多其實是廢話。。只不過是為了列出一些常用的配置源。

因為這個擴展組件是基於“Microsoft.Extensions.Configuration”框架在內部進行了一次二次渲染而已,所以只要是適配了“Microsoft.Extensions.Configuration”的配置源都可以進行支持。

配置信息變更重新渲染

當配置文件變更,進行Reload時,模板會自動進行重新渲染,不用擔心渲染之后配置監控不可用的問題。

Demo

配置文件如下:

image

代碼如下:

image

效果1(dotnet run):

image

效果2(dotnet run --ServiceHost=localhost):

image

效果3(dotnet run --ServiceHost=localhost --ServicePort=5000):

image

地址

源碼:https://github.com/RabbitTeam/Rabbit-Extensions

nuget:https://www.nuget.org/packages/Rabbit.Extensions.Configuration

寫在最后

RabbitCloud核心部分已經構建的差不多了,近期會寫一篇文章來介紹說明。先放一些圖。

L(VZOBRVQ6{SSM22B~A9P8O

image

image

.NET技術棧討論QQ群:384413261(點擊加入 .NET Group


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM