91 votes

Le moyen le plus simple d'avoir un fichier de configuration dans une application Windows Forms C#

Je suis vraiment novice en .NET, et je n'ai toujours pas compris le fonctionnement des fichiers de configuration.

Chaque fois que je fais une recherche sur Google à ce sujet, je reçois des résultats concernant web.config, mais j'écris une application Windows Forms.

J'ai compris que je devais utiliser l'espace de noms System.Configuration, mais la documentation ne m'aide pas.

Comment puis-je définir que mon fichier de configuration est XYZ.xml ? Ou existe-t-il un nom "par défaut" pour le fichier de configuration ? Je n'ai toujours pas compris.

Par ailleurs, comment puis-je définir une nouvelle section ? Dois-je vraiment créer une classe qui hérite de ConfigurationSection ?

Je voudrais simplement avoir un fichier de configuration avec quelques valeurs comme ceci :

<MyCustomValue>1</MyCustomValue>
<MyCustomPath>C:\Some\Path\Here</MyCustomPath>

Existe-t-il un moyen simple de le faire ? Pouvez-vous expliquer de manière simple comment lire et écrire depuis/vers un simple fichier de configuration ?

1 votes

Quelle est votre version de .NET ? Pour les versions 2.0 et supérieures, il existe un moyen très mignon appelé Settings.

1 votes

@Seven c'était une faute de frappe mais cela pourrait signifier "Expliquer avec un exemple" :)

127voto

qui Points 5259

Vous voulez utiliser une App.Config.

Lorsque vous ajoutez un nouvel élément à un projet, il existe un élément appelé fichier de configuration des applications. Ajoutez-le.

Ensuite, vous ajoutez des clés dans la section configuration/appsettings

Comme :

<configuration>
 <appSettings>
  <add key="MyKey" value="false"/>

Accédez aux membres en faisant

System.Configuration.ConfigurationSettings.AppSettings["MyKey"];

Cela fonctionne dans .NET 2 et plus.

2 votes

En fait, il fonctionne dans toutes les versions de .NET, à partir de la version 1.0. La nouvelle classe dans .NET 2.0 est ConfigurationManager.

4 votes

Personnellement, j'utilise l'onglet "Paramètres" des "Propriétés de l'application" (à partir de Framework 2.0 uniquement) car Visual Studio génère des propriétés fortement typées pour vos paramètres. Ils peuvent également inclure des paramètres "User" qui sont lus/écrits au moment de l'exécution.

0 votes

Mike, j'avais l'impression que c'était le cas, mais je n'étais pas trop sûr. Je n'ai pas beaucoup travaillé avec 1.

68voto

ZombieSheep Points 18967

Clarification des réponses précédentes...

  1. Ajoutez un nouveau fichier à votre projet ( AjouterNouvel articleFichier de configuration de l'application )

  2. Le nouveau fichier de configuration apparaîtra dans Solution Explorer sous la forme suivante App.Config .

  3. Ajoutez vos paramètres dans ce fichier en utilisant ce qui suit comme modèle

    <configuration>
      <appSettings>
        <add key="setting1" value="key"/>
      </appSettings>
      <connectionStrings>
        <add name="prod" connectionString="YourConnectionString"/>
      </connectionStrings>
    </configuration>
  4. Récupérez-les comme ceci :

    private void Form1_Load(object sender, EventArgs e)
    {
        string setting = ConfigurationManager.AppSettings["setting1"];
        string conn = ConfigurationManager.ConnectionStrings["prod"].ConnectionString;
    }
  5. Une fois construit, votre dossier de sortie contiendra un fichier appelé <nom de l'assemblage>.exe.config. Il s'agira d'une copie du fichier App.Config fichier. Le développeur ne devrait pas avoir à effectuer d'autres travaux pour créer ce fichier.

1 votes

Cela m'a été utile. Deux autres points : Lorsque j'ai ajouté le nouveau fichier au projet, le fichier de configuration de l'application a été trouvé lorsque j'ai cliqué sur le nœud Général sur le côté gauche de la boîte de dialogue. Afin d'utiliser la classe ConfigurationManager dans mon code, j'ai dû ajouter la DLL System.Configuration à mes références.

28voto

maxfurni Points 229

Après une lecture rapide des réponses précédentes, elles semblent correctes, mais il semble que personne n'ait mentionné les nouvelles fonctions de configuration de Visual Studio 2008. Il utilise toujours app.config (copié au moment de la compilation dans YourAppName.exe.config), mais il existe un widget de l'interface utilisateur permettant de définir les propriétés et de spécifier leurs types. Double-cliquez sur Paramètres. dans le dossier "Propriétés" de votre projet.

La meilleure chose est que l'accès à cette propriété à partir du code est sûr - le compilateur détectera les erreurs évidentes comme la mauvaise saisie du nom de la propriété. Par exemple, une propriété appelée MyConnectionString dans le code app.config serait accessible comme :

string s = Properties.Settings.Default.MyConnectionString;

0 votes

Ceci était disponible dans VS2005.

5 votes

Sympa, mais il (Propriétés du projet | Paramètres) génère du code qui doit être compilé. Si vous voulez modifier un paramètre, vous devez fournir de nouveaux binaires au client.

0 votes

@JohnL4 si ces paramètres sont dans la portée "utilisateur" alors vous pouvez les modifier par programme, par exemple. Settings.Default.Test = "abc"; Settings.Default.Save();

7voto

Mike Dimmick Points 6112

Le nom par défaut d'un fichier de configuration est [yourexe].exe.config. Ainsi, notepad.exe aura un fichier de configuration nommé notepad.exe.config, dans le même dossier que le programme. Il s'agit d'un fichier de configuration général pour tous les aspects du CLR et du Framework, mais il peut contenir vos propres paramètres sous un nom d'utilisateur. <appSettings> nœud.

El <appSettings> crée une collection de paires nom-valeur auxquelles on peut accéder en tant que System.Configuration.ConfigurationSettings.AppSettings . Il n'y a cependant aucun moyen de sauvegarder les modifications dans le fichier de configuration.

Il est également possible d'ajouter vos propres éléments personnalisés à un fichier de configuration - par exemple, pour définir un paramètre structuré - en créant une classe qui met en œuvre la fonction IConfigurationSectionHandler et l'ajouter à la <configSections> du fichier de configuration. Vous pouvez ensuite y accéder en appelant ConfigurationSettings.GetConfig .

.NET 2.0 ajoute une nouvelle classe, System.Configuration.ConfigurationManager qui prend en charge de multiples fichiers, avec des remplacements de données par utilisateur pour les données du système. Il permet également de sauvegarder les configurations modifiées dans les fichiers de paramètres.

Visual Studio crée un fichier appelé App.config qu'il copie dans le dossier EXE, avec le nom correct, lorsque le projet est construit.

6voto

TcKs Points 13249

Le meilleur article (IMHO) sur la configuration des applications .NET se trouve sur CodeProject, Lever le voile sur les mystères de la configuration de .NET 2.0 . Et mon autre article préféré (plus court) sur les sections des fichiers de configuration .NET est le suivant Comprendre les gestionnaires de section - Fichier App.config .

0 votes

Ce n'est vraiment pas la manière la plus simple demandée par l'utilisateur, mais démêler les mystères des configurations .NET 2.0 est vraiment une excellente série d'articles.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X