Entwickler-Ecke
ASP.NET und Web - auslesen anderer app.config datei
Reinhardl - Do 11.09.08 18:28
Titel: auslesen anderer app.config datei
HI, ich möchte in asp.net eine app.dll.config auslesen (Class library) welche wie unten aussieht. Speziell bin ich an einem Wert interessiert (CustomHeader), den ich lesen möchte und auch verändern bzw. schreiben möchte ?` In meiner Dll lese ich die jeweiligen werte mittels Properties.Settings.Default.CustomHeader aus !
Ich habe es so probiert ?
C#-Quelltext
1: 2: 3: 4:
| ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap(); fileMap.ExeConfigFilename = ConfigurationManager.AppSettings["TransportAgentConfig"]; Configuration config = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None); string currentValue = config.AppSettings["CustomHeader"]; |
Ich danke euch für jede HIlfe
lg reinhardl
XML-Daten
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| <configSections> <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" > <section name="TransportAgent.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> <section name="AntiSpam.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> </sectionGroup> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<applicationSettings> <TransportAgent.Properties.Settings> <setting name="MailboxAgent" serializeAs="String"> <value>MailboxAgent</value> </setting> <setting name="CustomHeader" serializeAs="String"> <value>X-Unverified-Sender</value>
..... .... |
Moderiert von
AXMD: C#-Tags hinzugefügt
Moderiert von
AXMD: XML-Tags hinzugefügt
AXMD - Fr 12.09.08 08:47
Hast du dir schon einmal den System.XML-Namespace und dessen Klassen angesehen?
AXMD
Reinhardl - Fr 12.09.08 10:21
hi..
nach vielen versuchen, auslesen funktioniert so :
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| if (!IsPostBack) { ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap(); fileMap.ExeConfigFilename = ConfigurationManager.AppSettings["TransportAgentConfig"]; Configuration config = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None); ClientSettingsSection section = (ClientSettingsSection)config.GetSection("userSettings/TransportAgent.Properties.Settings"); string currentValue = section.Settings.Get("DeleteSpam").Value.ValueXml.InnerText; if (currentValue.Equals("False", StringComparison.CurrentCultureIgnoreCase)) { spamFilter.Checked = false;
} else { spamFilter.Checked = true;
} |
Weiß vielleicht jemand wie ich nen wert ändern kann ? Wäre für ein Beispiel echt sehr dankbar !
lg reinhardl
Moderiert von
AXMD: C#-Tags hinzugefügt
AXMD - Fr 12.09.08 10:26
Hallo!
Bitte verwende in deinen Posts der Übersichtlichkeit halber C#-Tags.
Zum Problem: wie bereits oben beschrieben solltest du dir einmal den XML-Namespace ansehen - da findest du XML-Parser und damit Möglichkeiten, Werte auch zu ändern.
AXMD
Kha - Fr 12.09.08 14:24
Reinhardl hat folgendes geschrieben: |
Weiß vielleicht jemand wie ich nen wert ändern kann ? |
Hm, ValueXml.InnerText besitzt doch auch einen Setter... :gruebel: ;) ? Configuration.Save nicht vergessen.
Vielleicht landet die Änderung dann aber in einer user.config, app.config ist eigentlich nicht zum Verändern gedacht. In diesem Fall bleibt wohl wirklich nur noch XML übrig :nixweiss: .
Reinhardl - Fr 12.09.08 20:33
hi.
ja ich habs mit xml namespace gemacht, danke für den Tipp..
jetzt steht ich vor dem lächerlichen problem dass ich nicht weiß wie cih usersettings auslesen kann ?? Bei Appsettings verwende ich Properties.Settings.Default.NameElement , aber wie mache ich dass mit Usersettings ?
Bitte um Unterstützung
lg reinhardl
Reinhardl - So 14.09.08 23:02
hi. habs gelöst, war irgendetwas falsch, aber funkt jetzt.
Nun hab ich ein hoffentlich letztes problem. Ich ändere von meinem webapp aus einen Wert von der namederdll.config.dll Datei, welches auch gut funktioniert. Das schräge ist, dass, wenn ich dann meine ClassLibrary neu starte (anderes projekt exhcange plugin) damit die Datei neu eingelesen wird, ich immer den alten Wert bekomme ? Liege ich richtig dass diese Datei gar nicht ausgelesen wird beim startenm da ich diese gelöscht habe und funktioniert auch ? Den Wert den ich verändern /auslesen möchte habe ich als UserSetting definiert. WOhin muss ich die Änderungen schreiben von meinem webapp aus wenn schon nicht in oben genannte datei ?
bitte um hilfe
lg
reinhardl
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!