2010-06-08 7 views
7

J'essaie d'utiliser un fichier de configuration dans mon application console C#. J'ai créé le fichier dans le projet en allant Nouveau -> Fichier de configuration de l'application, et en le nommant monProjetNom.config. Mon fichier de configuration ressemble à ceci:Comment utiliser le fichier de configuration de l'application en C#?

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
<appSettings> 
<add key="SSDirectory" value="D:\Documents and Settings\****\MyDocuments\****" /> 
</appSettings> 
</configuration> 

Le code pour y accéder ressemble à ceci:

private FileValidateUtil() 
    { 
     sSDirFilePath = ConfigurationSettings.AppSettings["SSDirectory"]; 
     if (sSDirFilePath == null) 
      Console.WriteLine("config file not reading in."); 
    } 

Quelqu'un peut-il donner un coup de soupçon pourquoi cela ne fonctionne pas? (Je reçois le message d'erreur.)

Merci!

badPanda

+0

Quel message d'erreur? –

+0

Désolé pour cette ambiguïté tout le monde. Quand j'ai mentionné un message d'erreur, je voulais dire l'instruction console.writeline qui disait que 'le fichier de configuration ne lisait pas' Je m'excuse pour la confusion. – badpanda

Répondre

8

Vous ne pouvez pas changer le nom de app.config et attendre ConfigurationManager trouver sans fournir plus d'informations. Remplacez le nom de myProjectName.config par app.config, reconstruisez et vous verrez un fichier dans le dossier bin appelé myProjectName.exe.config. Ensuite, votre appel au ConfigurationManager.AppSettings devrait fonctionner correctement.

2

Tout d'abord, utilisez ConfigurationManager au lieu de ConfigurationSettings. Deuxièmement, au lieu de dire "ne fonctionne pas", qui ne fournit aucune information utile, dites-nous ce que vous voyez. Est-ce qu'il compile? Est-ce qu'il lance une exception lors de l'exécution? Est-ce que votre PC commence à fumer et sent la fonte du plastique?

Essayez ceci:

public string GetSSDirectory() 
    { 
     string sSDirFilePath = string.Empty; 

     if (!ConfigurationManager.AppSettings.AllKeys.Contains("SSDirectory")) 
     { 
      Console.WriteLine("AppSettings does not contain key \"SSDirectory\""); 
     } 
     else 
     { 
      sSDirFilePath = ConfigurationManager.AppSettings["SSDirectory"]; 
      Console.WriteLine("AppSettings.SSDirectory = \"" + sSDirFilePath + "\""); 
     } 

     return sSDirFilePath; 
    } 
+0

J'ai effectivement dit qu'il lançait le message d'erreur dans l'instruction if, mais merci pour votre réponse. – badpanda

Questions connexes