Configuration Extensions - 简化配置,让你配置支持变量
在开发“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):

写在最后
RabbitCloud核心部分已经构建的差不多了,近期会写一篇文章来介绍说明。先放一些图。
.NET技术栈讨论QQ群:384413261(点击加入 .NET Group)
Configuration Extensions - 简化配置,让你配置支持变量的更多相关文章
- 使用Configuration Extensions读取配置
使用Configuration Extensions读取配置 Configuration Extensions 是微软基于Configuration的扩展,能够很好的解析系统遇到各种配置文件,包括js ...
- Mac直播服务器Nginx配置对HLS的支持
在上一篇中Mac上搭建直播服务器Nginx+rtmp,我们已经搭建了nginx+rtmp直播服务器.下面需要对Nginx服务器增加对HLS的支持.在Nginx增加对HLS种支持比较简单,只是简单的修改 ...
- centos6.5配置uwsgi与nginx支持django
一.centos中升级python 1. > wget https://www.python.org/ftp/python/3.5.4/Python-3.5.4.tgz # https://ww ...
- spring 配置Value常量(不支持到static上)
spring 配置Value常量(不支持到static上) 看代码吧,语言表达有问题. package com.variflight.xzair.rest.constant; import org.s ...
- Apache下开启SSI配置,使html支持include包含
有的时候,我们的页面有公共的导航栏navbar,公共的脚注footer,那么我们就想把这些公共部分独立成一个html文件,在要引用的地方像引用js,css一样,给包含进来. Apache下开启SSI配 ...
- 协定须要双工,可是绑定“WSHttpBinding”不支持它或者因配置不对而无法支持它
协定须要双工,可是绑定"WSHttpBinding"不支持它或者因配置不对而无法支持它 下面两种情况,我都遇到过. 一, < endpoint address =" ...
- @Configuration结合@Bean实现对象的配置
@Configuration结合@Bean实现对象的配置 前提:最近项目中需要做支付接口,支付宝以及微信支付,本文并不介绍如何写支付接口,而是通过这个示例讲解配置应该怎么写,项目中使用的是Kotlin ...
- MAGENTO for XAMPP install config -搬家配置与安装配置
MEGENTO . 2.2.3 . 支持 PHP version is 7.0.2|7.0.4|~7.0.6|~7.1.0 虚拟机主机配置 环境扩展配置 其他错误 httpd-conf —— ...
- springAop:Aop(Xml)配置,Aop注解配置,spring_Aop综合案例,Aop底层原理分析
知识点梳理 课堂讲义 0)回顾Spring体系结构 Spring的两个核心:IoC和AOP 1)AOP简介 1.1)OOP开发思路 OOP规定程序开发以类为模型,一切围绕对象进行,OOP中完成某个任务 ...
随机推荐
- Struts2学习笔记(八)——国际化
1.Struts2国际化介绍 国际化即internationalization简称i18n. 为了实现程序的国际化,必须先提供程序所需要的资源文件.资源文件的内容是key-value键值对. 资源文件 ...
- Struts2学习笔记(五)——Action访问Servlet API
在Strut2中访问Servlet API有三种方式: 1.通过ActionContext访问Servlet API,推荐使用这种,但是这种方案它获取的不是真正的事Servlet API. 步骤: 1 ...
- 【Maven】 install:install-file
install jar to local fs mvn .jar -DgroupId=com.bonc -DartifactId=licenseVerify-.jar -Dversion= -Dpac ...
- hdu 3966 Aragorn's Story(树链剖分+树状数组/线段树)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3966 题意: 给出一棵树,并给定各个点权的值,然后有3种操作: I C1 C2 K: 把C1与C2的路 ...
- python进阶学习(一)
同样是<python基础教程(第二版)>的内容,只是后面内容学起来,相比前面会比较有趣,也更加实用,所以,将"基础"改为"进阶". python 电 ...
- MongoDb 入门教程
MongoDb 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. 它是可扩展的高性能数据存储解决方案,经常被用于非关系型数据的存储,能存储海量的数据. 常 ...
- django全文检索
-------------------linux下配置操作1.在虚拟环境中依次安装包 1.pip install django-haystack haystack:django的一个包,可以方便地对m ...
- json对象和json字符串之间的转化
json对象和json字符串之间的转化 json字符串----->json对象 使用JSON.parse()函数 var jsonStr = '{"name":"z ...
- python 魔法方法(学习过程的笔记)
有小伙伴会问,什么是python的魔法方法,python的魔法方法有什么用呢, 它们在面向对象的Python的处处皆是.它们是一些可以让你对类添加"魔法"的特殊方法. 它们经常是两 ...
- JS中 事件冒泡与事件捕获
[JS中的事件流] 1.事件冒泡:当某DOm元素触发一种事件时,会从当前节点开始,逐级往上触发其祖先节点的同类型事件,直到DOM根节点: >>>什么情况下会产生事件冒泡 ① D ...