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

在開發「RabbitCloud」項目時,使用配置文件發現會有不少重複值,因此我基於」Microsoft.Extensions.Configuration」寫了一個擴展庫,來豐富對配置的支持。git

實際案例——「RabbitCloud」

以前,我是這樣的

image

由於公司ip和家裏機器的ip不一致,因此常常須要切換配置文件。github

但根據這份配置文件,我更改健康檢查的主機和端口就意味着我得改三個地方,然而通常狀況下這三個地方都是一致的,若是這時候我能定義一個變量「ServiceHost」,而後這三個地方使用這個變量就行了。框架

如今,我是這樣的

image

若是有變動須要只需改動幾個變量值就能夠了,不須要在滿屏的配置文件裏面去查看、搜索替換了。3d

特性

支持的配置源

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

寫了這麼多實際上是廢話。。只不過是爲了列出一些經常使用的配置源。blog

由於這個擴展組件是基於「Microsoft.Extensions.Configuration」框架在內部進行了一次二次渲染而已,因此只要是適配了「Microsoft.Extensions.Configuration」的配置源均可以進行支持。ip

配置信息變動從新渲染

當配置文件變動,進行Reload時,模板會自動進行從新渲染,不用擔憂渲染以後配置監控不可用的問題。開發

Demo

配置文件以下:get

image

代碼以下:源碼

image

效果1(dotnet run):it

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

相關文章
相關標籤/搜索