工具类名称:Agebull.Common.Configuration.ConfigurationManager
为什么也叫ConfigurationManager
在Net core中,已找不到这个类,我们的目的还是尽量象原来ConfigurationManager一样方便地使用。
NetCore配置文件格式的改变
XML格式的配置文件,已完全被摈弃,NetCore配置文件的第一公民是JSON格式。同时,文件名称也统一为appSettings.json。
AppSettings(应用配置)
为保持习惯,使用大驼峰命名
- ConfigurationManager.AppSettings静态属性,提供对文本内容的简单获取的方法。
ConfigurationManager.AppSettings["value"];
- GetAppSetting及GetAppSettingXXX族的方法,可读取各种常用类型的值,并可提供在值不存在时的默认值
ConnectionStrings(数据库连接字符串)
只返回连接字符串,而不提供连接字符串的解析功能(在我的使用经验中,那些属性完全可以不需要)
- 在ConnectionStrings节实现
- 通过GetConnectionString方法
- 通过GetConnectionString[“name”]方式.
获取一个节
使用泛型方法Child
var config = ConfigurationManager.Get("set_name");
var value=config["value"];
可以使用GetXXX族的方法,可读取各种常用类型的值,并可提供在值不存在时的默认值
使用原生的配置对象
通过静态属性Root或实例属性Configuration暴露.
示例: 强类型取得配置
即将配置内容反序列化到一个类对象,需要注意的是:这反序列化并不认识Newtonsoft.Json的JsonObject、JsonProperty、JsonIgnore特性
- 以强类型方式取根节点
ConfigurationManager.Root.GetSection("section").Get<TConfig>();
- 以强类型方式取非根节点
ConfigurationManager.Root
.GetSection("parent")
.GetSection("child")
.Get<TConfig>();