2010-06-08 8 views
7

Estoy tratando de usar un archivo de configuración en mi aplicación de consola C#. Creé el archivo dentro del proyecto yendo Nuevo -> Archivo de configuración de la aplicación y llamándolo myProjectName.config. Mi archivo de configuración es el siguiente:¿Cómo usar el archivo de configuración de la aplicación en C#?

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

El código para acceder a ella se ve así:

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

Puede alguien dar una pista sobre por qué esto no está funcionando? (Recibo el mensaje de error.)

Gracias!

badPanda

+0

¿Qué mensaje de error? –

+0

Perdón por la ambigüedad de todos. Cuando mencioné un mensaje de error, me refería a la declaración console.writeline que decía 'archivo de configuración no leyendo' Pido disculpas por la confusión. – badpanda

Respuesta

8

No se puede cambiar el nombre de app.config y esperan ConfigurationManager para encontrarlo sin proporcionar más información. Cambia el nombre de myProjectName.config a app.config, recompila, y verás un archivo en la carpeta bin llamado myProjectName.exe.config. Entonces su llamada al ConfigurationManager.AppSettings debería funcionar correctamente.

2

En primer lugar, utilice ConfigurationManager en lugar de ConfigurationSettings.

En segundo lugar, en lugar de decir "no funciona", que no proporciona información útil, cuéntenos qué está viendo. ¿Compila? ¿Lanza una excepción en tiempo de ejecución? ¿Su PC comienza a fumar y huele a derretir plástico?

Prueba esto:

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

De hecho, dije que arrojaba el mensaje de error en la declaración if, pero gracias por su respuesta. – badpanda

Cuestiones relacionadas