<?xml version="1.0" encoding="utf-8" ?><configuration> <connectionStrings> <add name="strCon" connectionString="server=127.0.0.1;user id=sa; password=csw; database=testDB;"/> </connectionStrings> <appSettings> <add key="ConnectionString" value="server=127.0.0.1;user id=sa; password=csw; database=testDB;"/> <add key="ConStringEncrypt" value="true"/> </appSettings></configuration>
1、首先先在工程里添加system.configuration.dll程序集的引用
2、写代码读取配置参数
方法一: string connStr= System.Configuration.ConfigurationManager.ConnectionStrings["strCon"].ToString(); 方法二: string connStr= ConfigurationManager.AppSettings["ConnectionString"];
C# 配置文件读取与修改
配置文件在很多情况下都使用到, 配置文件分为两种 一种是应用程序的配置文件, 一种是web的配置文件.
两种配置文件最大的区别是web的配置文件更新之后会实时更新, 应用程序的配置文件不会实时更新.
更新应用程序的配置文件之后需刷新
ConfigurationManager.RefreshSection("appSettings");// 刷新命名节,在下次检索它时将从磁盘重新读取它。
ConfigurationSettings也存在这个问题, 但是我还不知道怎么刷新节点, 呵呵.
旧方法: 各位看官最好使用下面”新方法”
配置文件:
<configuration> <appSettings> <add key="name" value="我是远程服务器"/> </appSettings> </configuration>
后台程序值得读取:
string s=System.Configuration.ConfigurationSettings.AppSettings["name"];
修改配置文件的值:
/// <summary>
/// 更新配置文件信息
/// </summary>
/// <param name="name">配置文件字段名称</param>
/// <param name="Xvalue">值</param>
private
void
UpdateConfig(
string
name,
string
Xvalue)
{
XmlDocument doc =
new
XmlDocument();
doc.Load(Application.ExecutablePath +
".config"
);
XmlNode node = doc.SelectSingleNode(
@"//add[@key='"
+name+
"']"
);
XmlElement ele = (XmlElement)node;
ele.SetAttribute(
"value"
, Xvalue);
doc.Save(Application.ExecutablePath +
".config"
);
///<summary>
///向.config文件的appKey结写入信息AppValue 保存设置
///</summary>
///<param name="AppKey">节点名</param>
///<param name="AppValue">值</param>
Private
void
SetValue(String AppKey,String AppValue)
{
Xmldocument xDoc=
new
XmlDocument();
xDoc.Load(System.Windows.Forms.Application.ExecutablePath+”.config”);
XmlNode xNode;
XmlElement xElem1;
XmlElement xElem2;
xNode=xDoc.SelectSingleNode(“
//appSettings”);
xElem1=(XmlElement)xNode.SelectSingleNode(“
//add[@key=’”+AppKey+”’]”);
if
(xElem1!=
null
)
xElem1.SetAttribute(“value”,AppValue);
else
{
xElem2=xdoc.CreateElement(“add”);
xElem2.SetAttribute(“key”,AppKey);
xElem2.setAttribute(“value”,AppValue);
xNode.AppendChild(xElem2);
}
xDoc.Save(System.Windows.Forms.Application.ExecutablePath+”.config”);
}
新方法:
System.Configuration.ConfigurationSettings.AppSettings["Key"]; 但是现在FrameWork2.0已经明确表示此属性已经过时。并建议改为ConfigurationManager或WebConfigurationManager。并且AppSettings属性是只读的,并不支持修改属性值.
但是要想调用ConfigurationManager必须要先在工程里添加system.configuration.dll程序集的引用。(在解决方案管理器中右键点击工程名称,在右键菜单中选择添加引用,.net TablePage下即可找到)添加引用后可以用 String str = ConfigurationManager.AppSettings["Key"]来获取对应的值了。
更新配置文件: Configuration cfa = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); //添加
cfa.AppSettings.Settings.Add("key", "Name")
//修改
cfa.AppSettings.Settings["BrowseDir"].Value = "name";
最后调用 cfa.Save(); 当前的配置文件更新成功。
ConfigurationManager.RefreshSection("appSettings");// 刷新命名节,在下次检索它时将从磁盘重新读取它。记住应用程序要刷新节点