Autor Beitrag
Reinhardl
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Do 11.09.08 18:28 
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 ?

ausblenden 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"]; //is inaccessible to its protection level (error )




Ich danke euch für jede HIlfe

lg reinhardl


ausblenden 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 user profile iconAXMD: C#-Tags hinzugefügt
Moderiert von user profile iconAXMD: XML-Tags hinzugefügt
AXMD
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 4006
Erhaltene Danke: 7

Windows 10 64 bit
C# (Visual Studio 2019 Express)
BeitragVerfasst: Fr 12.09.08 08:47 
Hast du dir schon einmal den System.XML-Namespace und dessen Klassen angesehen?

AXMD
Reinhardl Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Fr 12.09.08 10:21 
hi..

nach vielen versuchen, auslesen funktioniert so :

ausblenden 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 user profile iconAXMD: C#-Tags hinzugefügt
AXMD
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 4006
Erhaltene Danke: 7

Windows 10 64 bit
C# (Visual Studio 2019 Express)
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Fr 12.09.08 14:24 
user profile iconReinhardl 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 Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: 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