【问题标题】:Modifying key in config file c#修改配置文件中的密钥c#
【发布时间】:2015-02-12 06:10:54
【问题描述】:

我有一个程序可以读取 app.config 并以编程方式更新配置文件。

例如:

<appSettings>
    <add key = "card" value = "rare" />
    <add key = "game" value = "poker" />
</appSettings> 

更新配置文件后应该变成这样:

<appSettings>
    <add key = "drink" value = "rare" />
    <add key = "game" value = "poker" />
</appSettings>

我知道我可以删除旧的键和值并添加新的键和值。 但它总是添加到最后一个索引。

我需要它位于我进行更改的完全相同的索引处。

抱歉,类比不好,英语不好。

【问题讨论】:

    标签: c# file config


    【解决方案1】:
    class Program
        {
    
    
            static void Main(string[] args)
            {
                //UpdateSetting("language", "English");
                UpdateAppSettings("card", "drink", "water");
            }
    
            public static void UpdateAppSettings(string OldKeyName, string KeyName, string KeyValue)
            {
                XmlDocument XmlDoc = new XmlDocument();
    
                XmlDoc.Load(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
    
                foreach (XmlElement xElement in XmlDoc.DocumentElement)
                {
                    if (xElement.Name == "appSettings")
                    {
    
                        foreach (XmlNode xNode in xElement.ChildNodes)
                        {
                            if (xNode.Attributes[0].Value == OldKeyName)
                            {
                                xNode.Attributes[0].Value = KeyName;
                                xNode.Attributes[1].Value = KeyValue;
                            }
                        }
                    }
                }
                XmlDoc.Save(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
            }
    }
    

    记住不要从 VS 调试器中测试它。您应该在发布模式下构建并从该文件夹打开执行该二进制文件以检查对该 app.config appsettings 文件所做的更改。

    【讨论】:

    • @Kai 更新了答案,试试它对我来说与你想要的完全相同的要求...... :)
    猜你喜欢
    • 2020-08-27
    • 1970-01-01
    • 1970-01-01
    • 2016-09-02
    • 2023-04-05
    • 2014-08-29
    • 1970-01-01
    • 2011-01-17
    • 2021-06-16
    相关资源
    最近更新 更多