Hi!
Ich möchte in meinem Projekt die appSettings zur Laufzeit auslesen. Ich ändere bereits erfolgreich den ConnectionString in den appSettings, aber ein auslesen einer anderen Einstellung will mir nicht gelingen.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<add name="XYZProg.Properties.Settings.XYZConnectionString"
connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=XYZ2008;Integrated Security=True;User Instance=False"
providerName="System.Data.SqlClient" />
</connectionStrings>
<applicationSettings>
<XYZProg.Properties.Settings>
<setting name="License" serializeAs="String">
<value>Max Mustermann</value>
</setting>
</XYZProg.Properties.Settings>
</applicationSettings>
</configuration>
public static void ModifyConnectionString(string connectionString)
{
System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
config.ConnectionStrings.ConnectionStrings ["XYZProg.Properties.Settings.XYZConnectionString"].ConnectionString = connectionString;
config.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection(config.ConnectionStrings.SectionInformation.Name);
XYZProg.Properties.Settings.Default.Reload();
}
public static string GetLicenseString()
{
System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
return config.AppSettings.Settings["XYZProg.Properties.Settings.License"].Value; //Fehler: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
}
Quelle: Galileo Computing
Was mache ich falsch?
Gruß sp00ky
Der Zugriff auf die Settings funktioniert so:
string lic = XYZProg.Properties.Settings.License;
So wie du's machst, könntest Du auf die "normalen" AppSettings zugreifen. In Deinem Fall müsste der Config-Eintrag dann so aussehen:
<add key="XYZProg.Properties.Settings.License" value="Max Mustermann" />
Gruss