2009-09-18 7 views
0

J'utilise dans certains projets une bibliothèque xml pour mes paramètres d'économie, comment cela fonctionnait était comme ça:Enregistrement forment des éléments propriétés à XML (Enregistrer état de contrôle)

saveSettings(Control control, XmlConfig config, string controlName) 

Il recherche alors tous les contrôles à l'intérieur que l'un (récursive), qui se fait appeler chaque fois qu'il a trouvé un nouveau contrôle, etc, et sauver toutes leurs informations dans un fichier xml comme:

Ensuite, chargez-les.

La dernière fois que je l'ai utilisé était dans le cadre 2, récemment je l'ai utilisé à nouveau, et l'a réutilisé, il enregistre le fichier XML comme normal, mais ne semble pas mettre à jour les formulaires après le chargement du fichier xml. pour trouver pourquoi, tout le code semble correct.

Quelqu'un connaît un bon remplacement? (Par défaut un, les paramètres d'application, utilise une approche qui aspire clairement, ne approche de la spécification d'un contrôle pour sauver est beaucoup plus simple et fonctionne partout)

Merci d'avance =)

Répondre

0

Eh bien, je fais cela, mais plus explicitement que ce que vous décrivez. J'ai mis en place un ensemble d'interfaces et de classes pour soutenir cela il y a quelque temps. Ils sont utilisés comme ce qui suit:

readonly ObjectSerializer _serializer; 
public MyForm() 
{ 
    _serializer = new ObjectSerializer(this, 
     "Top", "Left", "Height", "Width", 
     "_splitter.SplitterDistance"); 
    _serializer.ContinueOnError = true; 
} 

private void Form_Load(object sender, EventArgs e) 
{ 
    _serializer.Deserialize(new CSharpTest.Net.Serialization.StorageClasses.UserSettingStorage()); 
} 

void Form_Closing(object sender, FormClosingEventArgs e) 
{ 
    _serializer.Serialize(new CSharpTest.Net.Serialization.StorageClasses.UserSettingStorage()); 
} 

La bibliothèque utilisée "CSharpTest.Net.Library.dll" se trouve à:

http://code.google.com/p/csharptest-net

+0

Où est-ce ObjectSerializer? (l'instruction using) –

+0

Trouvé, mais, comment l'enregistrez-vous après? Je ne vois pas une méthode pour obtenir le code:/ –

+0

Serialize et Deserialize sont des vides btw –

Questions connexes