2011-06-22 15 views
10

Agregué un archivo app.config a un proyecto mono C#.¿Monodevelop admite archivos de configuración?

Dentro del proyecto que utiliza

foreach (string key in ConfigurationManager.AppSettings) 
{ 
string value = ConfigurationManager.AppSettings[key]; 
Console.WriteLine("Key: {0}, Value: {1}", key, value); 
} 

El archivo de configuración se parece a esto

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
<appSettings> 
<add key="Key1" value="Kevin" /> 
<add key="Key2" value="150" /> 
<add key="Key3" value="Rice" /> 
</appSettings> 
</configuration> 

No se detectan las teclas. ¿Cómo puedo leer los valores de configuración?

+0

Debe usar ConfigurationManager para escribir las claves y luego volver a leerlas usando ConfigurationManager. Si eso tiene éxito, busque el archivo XML que generó. –

+0

@robert - pero solo necesito leer los valores de configuración de un archivo – danidacar

+0

Si lo que sugerí es exitoso, sabrá dónde debe ubicarse el archivo XML y cómo debe formatearse correctamente. Una vez que lo sepa, puede crear el archivo manualmente. –

Respuesta

6

Esta respuesta llega terriblemente tarde, pero para cualquiera que se encuentre con esto, sí, mono no admite archivos de configuración. Puede usar el método ConfigurationManager descrito anteriormente o incluso puede crear su propia sección de configuraciones personalizadas en el archivo app.config y manipularlo a través de una clase que se deriva de ApplicationSettingsBase. En mi opinión, esta es una forma mucho más natural de manejar el archivo app.config porque se trabaja con una clase y con propiedades fuertemente tipadas, en lugar de acceder a cadenas de una matriz con la forma en que ConfigurationManager lo hace. Crear una clase para la configuración de la aplicación también es bastante fácil. Aquí está la página de MSDN que explica cómo crear la clase: http://msdn.microsoft.com/en-us/library/system.configuration.applicationsettingsbase.aspx

La única advertencia a tener en cuenta con Mono es que .NET Framework permite UserScopedSettings que se definen en el archivo app.config (para proporcionar un valor por defecto), pero Mono lanzará excepciones si haces eso. La solución para esto es dejar UserScopedSettings fuera del archivo app.config y simplemente definir el valor predeterminado para una propiedad en el código. Esta no es una solución perfecta porque no ofrece una forma de cambiar el valor predeterminado fuera del código, pero esto será suficiente en la mayoría de los casos.

Cuestiones relacionadas