Hallo Profis,
ich sehe gerade den wald vor lauter Bäumen nicht und habe mittlerweile einige unterschiedliche Varianten genutzt die mich nicht weiter gebracht haben. Ich lerne gerade App.Configs anzupassen, oder besser, versuche es 😦
Ich will die Daten einer App.Config (irgendeiner) auslesen, in ein Textfeld schreiben und renne dabei vor die Wand.
Aus meiner eigenen ist das auslesen absolut problemlos.
Bsp:
txt_source.Text = ConfigurationManager.AppSettings.Get("Source").ToString();
Um nun die Daten einer anderen App.Config auszulesen habe ich folgenden Weg probiert:
private void bt_read_Click(object sender, EventArgs e)
{
opf.Filter = "App.Config|*.deploy";
opf.Title = "Select a Config File";
ExeConfigurationFileMap configFile = new ExeConfigurationFileMap();
if (opf.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
configFile.ExeConfigFilename = opf.FileName;
}
Configuration cfm = ConfigurationManager.OpenMappedExeConfiguration(configFile, ConfigurationUserLevel.None);
txt_target.Text = cfm.AppSettings.Settings["Source"].Value.ToString();
}
Die Meldung die ich erhalte:
Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
Hmm, ich blicks gerade garnichts und würde mich echt freuen einen kleinen Schubs in die richtige Richtung zu bekommen,
Vielen Dank schon mal und viele Grüße,
walter0212
Kaffee neben dem Rechner ist schon ne coole Sache.
Hallo,
das folgende ist eine abgewandelte Form einer Klasse, die ich verwende. Ich denke die sollte dir weiterhelfen (die Abwandlung ist jedoch ungetestet).
public class SettingsReader
{
public AppSettingsSection GetAppSettings(string sConfigFile)
{
return (AppSettingsSection)this.GetConfigurationSection(sConfigFile, "appSettings");
}
private ConfigurationSection GetConfigurationSection(string sConfigFile, string sSectionName)
{
Configuration myConfig = this.GetConfiguration(sConfigFile);
return myConfig.GetSection(sSectionName);
}
private Configuration GetConfiguration(string sConfigFile)
{
Configuration config = null;
ExeConfigurationFileMap map = new ExeConfigurationFileMap { ExeConfigFilename = sConfigFile };
config = ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None);
return config;
}
}
Wissen ist nicht alles. Man muss es auch anwenden können.
PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |
Habs hinbekommen 😁
Man, man, man. Manchmal sollte anstelle des Kaffees doch lieber ein Bier herhalten.
Ich habe vorher in der App.Config einige Bereiche auskommentiert um sicher zu gehen, dass nicht diese Daten geladen werden. Tja, da kann er auch nichts finden. dafür habe ich nun einige Wege an die Daten ranzukommen.
private void bt_read_Click(object sender, EventArgs e)
{
opf.Filter = "App.Config|*.deploy";
opf.Title = "Select a Config File";
string path=null;
if (opf.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
path= opf.FileName;
}
ExeConfigurationFileMap configMap = new ExeConfigurationFileMap();
configMap.ExeConfigFilename = path;
Configuration cfm = ConfigurationManager.OpenMappedExeConfiguration(configMap, ConfigurationUserLevel.None);
txt_source.Text = cfm.AppSettings.Settings["Source"].Value;
}
@inflames2k & Jamikus: Danke für eure Feedbacks. Klar, den NullReference kenn ich, hatte vorher schon so gefühlte 20 mal gelesen. Naja, Montag halt.
Jetzt noch ConnectionString auslesen, alles ändern 6 speichern, und der Tag ist wieder gerettet.
Danke nochmal und viele Grüße
Kaffee neben dem Rechner ist schon ne coole Sache.