2010-10-21 9 views
1

J'ai mon propre fichier de paramètres xml dans l'application winform. Il est installé sur un emplacement. Et j'ai besoin de mettre à jour ce fichier (ajouter de nouveaux attributs/paramètres) sans perdre les anciens paramètres.Comment mettre à jour les paramètres du fichier xml

Exemple ancien paramètre xml:

<settings> 
    <someSetting>Old Value</someSetting> 
<settings> 

Exemple nouveau fichier de configuration xml:

<settings> 
    <someSetting>default value</someSettingNew> 
    <someSettingNew>defaul value</someSettingNew> 
<settings> 

J'ai besoin nouveau look de fichier de paramètres xml après la mise à jour comme celui-ci:

<settings> 
    <someSetting>Old Value</someSettingNew> 
    <someSettingNew>defaul value</someSettingNew> 
<settings> 

Comment Je fais cela dans C# .NET Framework 3.5. Et je sais que je peux le faire avec App.config, mais j'ai besoin de mon propre manager. Je dois partager ce fichier de configuration entre deux applications (l'application Paramètres pour le service Windows et le service Windows)

Thanx.

MISE À JOUR: Je dois expliquer mon flux de travail:

  1. service Windows + app IUG est instalé avec Instalator
  2. service Windows
  3. est configuré avec l'application IUG
  4. je vais créer la mise à jour (dll + nouveau fichier de configuration xml)
  5. dll sont déployés, et j'ai besoin de fusionner l'ancien fichier de configuration xml avec le nouveau fichier de configuration (nouveaux paramètres et valeur par défaut). Comment cela programmicaly? Je veux mettre à jour seulement le fichier XML, pas le code du programme. Dans l'application Windows Servic je peux détecter la mise à jour afin que je puisse appeler une procédure pour charger de nouveaux paramètres. Thats ce dont j'ai besoin, comment faire cette procédure?
+0

Dans votre mise à jour # 4 est contradictoire: vous voulez un moyen de programmation, mais pas de code. Si vous voulez une solution programmatique, vous aurez besoin de code pour l'implémenter. (Remarque XML peut être du code, par exemple XSLT, mais il s'agit toujours de * code *). – Richard

+0

Désolé, je l'ai mal écrit. Je voulais dire que je ne veux pas définir de nouvelles mises à jour dans le vieux XML dans le code comme Darin l'a écrit. Je comprends que la fusion de deux xml doit être faite par code. – Simon

Répondre

5

Vous pouvez utiliser XDocument:

var doc = XDocument.Load("test.xml"); 
doc.Root.Add(new XElement("someSettingNew", "defaul value")); 
doc.Save("test.xml"); 
+0

Merci, s'il vous plaît, voir la mise à jour ci-dessus. – Simon

Questions connexes