2010-06-11 4 views
0

Je n'ai jamais utilisé la classe Settings avant mais j'ai trouvé quelques articles sur CodeProject que je suis en train de lire (par exemple http://www.codeproject.com/KB/cs/PropertiesSettings.aspx) mais jusqu'ici je n'ai pas vu comment enregistrer string tableau pour l'obtenir après l'application est démarré la prochaine fois. Par exemple mon application a plusieurs instances FileSystemWatcher, avec chaque instance plusieurs autres répertoires sont connectés (par exemple une instance FSW surveille un répertoire pour un changement et quand cela arrive il copie un fichier dans plusieurs autres répertoires), donc je aurait un tableau string avec des chemins surveillés représentant des instances FSW, et un tableau string pour chacun de ces chemins, représentant les répertoires affectés.C# paramètres d'application et de configuration

Ma question est, que dois-je utiliser (Settings classe ou autre chose), et comment dois-je utiliser cela pour stocker la configuration de l'application qui est le nombre variable de string tableaux? L'accent est mis sur quelque chose que je pourrais utiliser très bientôt car je n'ai pas trop de temps pour faire des cours personnalisés (mais je devrais le faire si je ne trouve pas de solution) ou creuser dans des hacks obscurs. Tout lien tutoriel, extrait de code serait très utile.

Merci.

Répondre

1

Pourquoi ne pas utiliser un fichier de configuration à la place? J'avais un ensemble de FileSystemWatchers comme le vôtre et juste ajouté un ensemble de chemins en utilisant custom config sections. Pensé que vous avez besoin de rouler une classe pour étendre les classes de configuration, mais je pense que vous ne pouvez pas battre cette approche.

Bien que si vous voulez un hack facile claire et ne veulent pas se dérangé par les sections Config personnalisée/Eléments/Collections. Utilisez simplement un hack AppSettings rapide et facile. XD

<appSettings> 
    <add key="ConnectionInfo0" value="server=(local);database=Northwind;Integrated Security=SSPI" /> 
    <add key="ConnectionInfo1" value="server=(local);database=Northwind;Integrated Security=SSPI" /> 
    <add key="ConnectionInfo2" value="server=(local);database=Northwind;Integrated Security=SSPI" /> 
</appSettings> 

Obtention à partir du code.

const string CONNECTIONSTRING=""; 
int i = 0; 
while(ConfigurationSettings.AppSettings["ConnectionInfo"] + i != null) 
{ 
    // do stuff with connection info here 
    // use 
    ConfigurationSettings.AppSettings["ConnectionInfo" + i]; 
    // to get data. 
    ++i; 
} 

Mince, je sais. La configuration personnalisée fonctionne mieux.

+0

Merci pour votre réponse Jonn. Chose est que j'ai besoin d'ajouter des données par programme aussi et puisque je n'ai tout simplement pas tellement de temps maintenant à dépenser pour apprendre à le faire correctement (IMO ils trop compliqué), je vais utiliser 'System.Xml.Serialization.XmlSerializer 'pour l'instant. C'est plus propre et beaucoup plus facile à utiliser/déployer avec une classe personnalisée qui représente les paramètres. À votre santé. – Maks

Questions connexes