lezen uit app.config-bestand

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.Configurationtoe te voegen aan je bibliotheek met referenties:

voer hier de afbeeldingsbeschrijving in


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.AppSettingsretourneert 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 ConfigurationManagerzich 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.dllinstelt als referentie in uw project of buildscript.


Antwoord 7, autoriteit 2%

Probeer uw project opnieuw op te bouwen – Het kopieert de inhoud van App.confignaar
“<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.

Other episodes