Ik probeer StartingMonthColumn en CategoryHeadingColumn te lezen
uit het onderstaande app.config-bestand met de code
ConfigurationSettings.AppSettings["StartingMonthColumn"]
maar het retourneert null, ook ConfigurationSettings.AppSettings.Count retourneert nul
Help me dit te lezen in mijn Windows-toepassing
<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>
Antwoord 1, autoriteit 100%
ConfiguratieInstellingen.AppSettingsverouderdis, moet u ConfigurationManager.AppSettingsin plaats daarvan (je moet een verwijzing toevoegen naar Systeemconfiguratie)
int value = Int32.Parse(ConfigurationManager.AppSettings["StartingMonthColumn"]);
Als je nog steeds problemen hebt met het lezen van je app-instellingen, controleer dan of je App.config
-bestand de juiste naam heeft. Het moet met name een naam hebben volgens de uitvoerende assembly, d.w.z. MyApp.exe.config
, en moet zich in dezelfde map bevinden als MyApp.exe
.
Antwoord 2, autoriteit 13%
Voor de toekomst hoef je alleen maar System.Configuration
toe te voegen aan je bibliotheek met referenties:
Antwoord 3, autoriteit 12%
ConfigurationSettings.AppSettings is verouderd, zie hier:
http://msdn.microsoft.com/ nl-us/library/system.configuration.configurationsettings.appsettings.aspx
Dat gezegd hebbende, het zou nog steeds moeten werken.
Slechts een suggestie, maar hebt u bevestigd dat uw toepassingsconfiguratie de configuratie is die uw uitvoerbaar bestand gebruikt?
Probeer een foutopsporingsprogramma toe te voegen en de volgende waarde te controleren:
AppDomain.CurrentDomain.SetupInformation.ConfigurationFile
En dan het configuratiebestand openen en controleren of de sectie er is zoals je had verwacht.
Antwoord 4, autoriteit 11%
Probeer:
string value = ConfigurationManager.AppSettings[key];
Voor meer details kijk op:
Sleutels lezen van App.Config
Antwoord 5, autoriteit 5%
De reden is simpel, uw aanroep naar ConfigurationSettings.AppSettings
retourneert niet het vereiste configuratiebestand. Probeer een van de volgende manieren:
- Zorg ervoor dat uw app-configuratie dezelfde naam heeft als het exe-bestand van uw toepassing – met de extensie .config toegevoegd, bijvoorbeeld MyApp.exe.config
- OF u kunt
ConfigurationManager.OpenExeConfiguration(Assembly.GetExecutingAssembly().Location).AppSettings["StartingMonthColumn"]
gebruiken
Hopelijk helpt dit
Antwoord 6, autoriteit 4%
Dit:
Console.WriteLine( "StartingMonthColumn is {0}", ConfigurationManager.AppSettings["StartingMonthColumn"]);
werkt prima voor mij.
Houd er rekening mee dat ConfigurationManager
zich in de System.Configuration
-naamruimte bevindt (je zult dus waarschijnlijk een using System.Configuration;
-instructie nodig hebben), en dat aangezien wat je inleest een tekenreekstype heeft, je moet ontleden wat je inleest om het als een getal te gebruiken.
Zorg er ook voor dat u system.configuration.dll
instelt als referentie in uw project of buildscript.
Antwoord 7, autoriteit 2%
Probeer uw project opnieuw op te bouwen – Het kopieert de inhoud van App.config
naar
“<YourProjectName.exe>.config” in de build-bibliotheek.
Antwoord 8
Voeg ook de sleutel “StartingMonthColumn” toe in App.config van waaruit u de toepassing uitvoert, bijvoorbeeld in de App.config van het testproject.