一、app.config
这种方式最简单直接从app.config里面读取,调用内置API接口
ConfigurationManager.AppSettings["demo"];
ConfigurationManager.ConnectionStrings["DbServer"].ConnectionString;
此时app.config内的配置文件
<appSettings>
<add key="demo" value="123"/>
</appSettings>
<connectionStrings>
<add key="DbServer" connectionString="server=127.0.0.1;root={username};pwd={password}"/>
</connectionStrings>
获取最新配置文件
ConfigurationManager.RefreshSection("appSettings");
ConfigurationManager.AppSettings["demo"]
将内存数据更新至配置文件
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
config.AppSettings.Settings["demo"].Value = "456";
config.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("appSettings");
二、自己建立app.config的Section
继承ConfigurationSection
public class SectionDemo:ConfigurationSection{
[ConfigurationProperty(“demo”,IsRequired=true)]
public Demo demo{
get{
return this["demo"] as Demo;
}
}
}
Demo类继承ConfigurationElement
public class Demo:ConfigurationElement{
[ConfigurationProperty("value",IsRequired = true)]
public string Value{
get{
return this["value"] as string;
}
}
}
首先,得在app.config中声明配置
<configSections>
<section name="demoSettings" type="{SectionDemo所在的namespace},{解决方案名称}">
</configSections>
<demoSettings>
<demo value="200"></demo>
</demoSettings>
tpye配置参见:app.config加载文件及程序集
三、从Xml读取
1.反序化基础类
public static object DeserializeFromXml(string xmlFilePath,Type type){
obejct result = null;
if(File.Exists(xmlFilePath)){
using(StreamReader reader = new StreamReader(xmlFilePath))
{
XmlSerializer xs = new XmlSerializer(type);
result = xs.Deserialize(reader);
}
}
}
2.实体
[XmlRoot(ElementName = "ConfigDemo")]
public class ConfigDemo{
[XmlElement(ElementName = "Demo")]
public string DemoInnerText{
set;get;
}
}
3.Xml配置文件
<ConfigDemo>
<Demo>123456</Demo>
</ConfigDemo>
4.调用
ConfigDemo configDemo = XmlUnit.DeserializeFromXml("{xml文件地址}",typeof(ConfigDemo) as ConfigDemo);
总结:
当一个解决方案集成过多的服务时,避免不了需要多项配置,合理的设计配置文件有助于我们管理和维护代码,这方面是我需要思考的问题
待解决问题:
1.如果配置一个多服务解决方案的服务启动或关闭问题
其他涉猎:
1.Xml基础
2.set、get
3.ConfigSection
4.Xml文件缓存机制
5.Xml缓存不同步文件
6.读写Xml,了解c#读写
网友评论