人亦已歌 发表于 2024-9-15 01:02:20

C#配置文件读取与修改——.NET学习技巧


<p>配置文件在很多情况下都使用到,配置文件分为两种:一种是应用程序的配置文件,一种是Web的配置文件。</p>
<p>两种配置文件最大的区别在于Web的配置文件更新之后会实时生效,而应用程序的配置文件则不会实时更新。更新应用程序的配置文件之后需要进行刷新,可以使用如下方式:</p>

ConfigurationManager.RefreshSection("appSettings"); // 刷新命名节,在下次检索它时将从磁盘重新读取它。

<p>ConfigurationSettings也存在这个问题,不过目前还不清楚如何刷新节点。推荐使用以下新方法:</p>
<p>配置文件:</p>
<p>后台程序读取配置文件示例:</p>

string s = System.Configuration.ConfigurationSettings.AppSettings["name"];

<p>修改配置文件的值:</p>

///
/// 更新配置文件信息
///
/// 配置文件字段名称
///
/// 值
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");
}

<p>向配置文件插入值:</p>

///
/// 向.config文件的appKey结写入信息AppValue 保存设置
///
/// 节点名
///
/// 值
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");
}

<p>新的方法:</p>

System.Configuration.ConfigurationSettings.AppSettings["Key"];

<p>但是现在Framework 2.0已经明确表示此属性已经过时,并建议改为使用ConfigurationManager或WebConfigurationManager。并且AppSettings属性是只读的,并不支持修改属性值。</p>
<p>但是要想调用ConfigurationManager必须要先在工程里添加system.configuration.dll程序集的引用。(在解决方案管理器中右键点击工程名称,在右键菜单中选择添加引用,.net TabPage下即可找到)添加引用后可以用 String str = ConfigurationManager.AppSettings["Key"]来获取对应的值了。</p>
<p>更新配置文件:</p>

Configuration cfa = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
// 添加
cfa.AppSettings.Settings.Add("key", "Name");
// 修改
cfa.AppSettings.Settings["BrowseDir"].Value = "name";

<p>最后调用</p>

cfa.Save();

<p>当前的配置文件更新成功。</p>

ConfigurationManager.RefreshSection("appSettings"); // 刷新命名节,在下次检索它时将从磁盘重新读取它。记住应用程序要刷新节点
页: [1]
查看完整版本: C#配置文件读取与修改——.NET学习技巧