Comment stocker des paires clé-valeur dans les paramètres de l'application au moment de l'exécution?

StackOverflow https://stackoverflow.com/questions/179063

  •  05-07-2019
  •  | 
  •  

Question

Comment les paires d’objets clé-valeur dynamiques peuvent-elles être stockées dans app.config lors de l’utilisation de l’API de paramètres d’application, lors de l’exécution?

J'ai essayé de me faire comprendre et je ne trouve aucun exemple significatif ni aucune documentation.

Il semble que les classes de dictionnaire .Net ne puissent pas être sérialisées en XML pour les stocker dans app.config

Le seul moyen de le faire consiste-t-il à utiliser des classes sérialisées XML personnalisées ou existe-t-il d'autres moyens?

Était-ce utile?

La solution 2

Après quelques recherches supplémentaires sur le net, j’ai trouvé un très bon article (bien que très long) qui décrit en détail le modèle de configuration .Net:

Comment résoudre les mystères de la configuration .NET 2.0

J'ai aussi trouvé quelque chose de très utile:

Concepteur de section de configuration

Un studio visuel permettant de concevoir visuellement des sections de configuration et de générer les fichiers XSD corespongants. J'espère que quelqu'un trouvera cela utile.

Autres conseils

Vous devriez pouvoir faire quelque chose comme ceci:

// Open App.Config of executable
System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

// Add an Application Setting with a name Key and a Value stored in variable called Value
config.AppSettings.Settings.Add("Key", Value );

// Save the changes in App.config file.
config.Save(ConfigurationSaveMode.Modified);

Vous avez toujours pensé qu'il était considéré comme une mauvaise pratique de changer app.config lors de l'exécution. App.config doit être utilisé pour l’installation et la configuration du programme; pas pour les choses dynamiques que l'application est en train de modifier.

Vous suggère de créer séparément " KeyValue.xml " fichier pour les objets dynamiques.

En fonction de vos besoins, vous pouvez essayer System.Collections.ObjectModel.KeyedCollection < TKey, TValue > ;. Cela ne fonctionne que si vous pouvez dériver la clé d'un article à partir de l'article lui-même, mais dans ce cas, tout va bien pour cela.

Est-ce un dictionnaire générique? Si oui:

Dictionnaire générique sérialisable XML

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top