c# - leyendo desde el archivo app.config
(8)
ConfigurationSettings.AppSettings está en desuso , ver aquí:
http://msdn.microsoft.com/en-us/library/system.configuration.configurationsettings.appsettings.aspx
Dicho eso, todavía debería funcionar.
Solo una sugerencia, pero ¿confirmó que la configuración de su aplicación es la que está usando su ejecutable?
Intente conectar un depurador y verifique el siguiente valor:
AppDomain.CurrentDomain.SetupInformation.ConfigurationFile
Y luego, abra el archivo de configuración y verifique que la sección esté allí como esperaba.
Estoy tratando de leer StartingMonthColumn y CategoryHeadingColumn del siguiente archivo app.config usando el código
ConfigurationSettings.AppSettings["StartingMonthColumn"]
pero está devolviendo nulo, también ConfigurationSettings.AppSettings.Count devuelve cero
Por favor, ayúdame a leer esto en mi aplicación de Windows
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="CTARepository.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
</configSections>
<userSettings>
<CTARepository.Properties.Settings>
<setting name="Setting" serializeAs="String">
<value />
</setting>
</CTARepository.Properties.Settings>
</userSettings>
<appSettings>
<add key="StartingMonthColumn" value="7"/>
<add key="CategoryHeadingColumn" value="1"/>
</appSettings>
</configuration>
Esta:
Console.WriteLine( "StartingMonthColumn is {0}", ConfigurationManager.AppSettings["StartingMonthColumn"]);
funciona bien para mí
Tenga en cuenta que ConfigurationManager
encuentra en el espacio de nombres System.Configuration
(por lo que es probable que desee using System.Configuration;
una instrucción using System.Configuration;
) y dado que lo que lee tiene un tipo de cadena, deberá analizar lo que ha leído para usarlo como un número.
Además, asegúrese de establecer system.configuration.dll
como referencia en su proyecto o script de compilación.
Intente reconstruir su proyecto: copia el contenido de App.config
en "<YourProjectName.exe> .config" en la biblioteca de compilación.
La razón es simple, su llamada a ConfigurationSettings.AppSettings
no devuelve el archivo de configuración requerido. Pruebe alguna de las siguientes formas:
- Asegúrate de que la configuración de tu aplicación tenga el mismo nombre que el archivo exe de tu aplicación, con la extensión .config añadida, p. Ej. MyApp.exe.config
- O puede usar
ConfigurationManager.OpenExeConfiguration(Assembly.GetExecutingAssembly().Location).AppSettings["StartingMonthColumn"]
Espero que esto ayude
También agregue la clave "StartingMonthColumn" en App.config desde donde ejecuta la aplicación, por ejemplo, en App.config del proyecto de prueba.
Tratar:
string value = ConfigurationManager.AppSettings[key];
Para más detalles, consulte: Lectura de claves desde App.Config
ConfigurationSettings.AppSettings está obsoleto , debe usar ConfigurationManager.AppSettings en ConfigurationManager.AppSettings lugar (deberá agregar una referencia a System.Configuration )
int value = Int32.Parse(ConfigurationManager.AppSettings["StartingMonthColumn"]);
Si todavía tiene problemas para leer en la configuración de su aplicación, verifique que su archivo app.config
tenga el nombre correcto. Específicamente, debe nombrarse de acuerdo con el ensamblaje de ejecución, es decir, MyApp.exe.config
, y debe residir en el mismo directorio que MyApp.exe
.