2015-02-12 69 views
0

我有一個程序讀取app.config並以編程方式更新配置文件。在配置文件中修改密鑰c#

例如:

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

更新配置文件後,它應該變成這樣:

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

我知道我可以刪除舊的密鑰值,並添加在換新。 但它總是添加到最後一個索引。

我需要它在完全相同的索引,我做了更改。

對不起,類比和英語不好。

回答

0
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文件所做的更改。

+0

我明白了,非常感謝您的信息。 – Kai 2015-02-12 06:21:58

+0

@Kai更新回答試試看,它對我的​​工作和你想要的完全一樣的要求... :) – 2015-02-12 06:33:44

+0

它的工作原理!非常感謝! – Kai 2015-02-12 06:55:29