tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
2616
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von hagbard_celine
    hagbard_celine hagbard_celine ist offline Mitglied Silber
    Registriert seit
    May 2006
    Beiträge
    81
    Wie kann ich auf einen String der in den Settings einer Application steht zugreifen?
    Ich wäre für ein Beispiel dankbar, wenns geht in C#.

    THX
     

  2. #2
    Avatar von Norbert Eder
    Norbert Eder Norbert Eder ist offline Mitglied Diamant
    Registriert seit
    Feb 2004
    Ort
    Österreich / Graz
    Beiträge
    5.137
    Blog-Einträge
    51
    Gegeben:
    Code csharp:
    1
    2
    3
    4
    5
    
    <configuration>
      <appSettings>
        <add key="user" value="testuser"/>
      </appSettings>
    </configuration>

    Dann kannst du das wie folgt auslesen:
    Code csharp:
    1
    
    string username = ConfigurationSettings.AppSettings.Get("user");
    Dazu ist im übrigen der Namespace System.Configuration einzubinden.

    Diese Frage wurde hier im übrigen schon sehr oft beantwortet. Eine Suche hätt also auch zum Ergebnis geführt.
     

  3. #3
    Avatar von hagbard_celine
    hagbard_celine hagbard_celine ist offline Mitglied Silber
    Registriert seit
    May 2006
    Beiträge
    81
    Ich habe keine funktionierende Antwort gefunden!

    Bei mir sieht die AppConf so aus:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <configSections>
            <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
                <section name="BMC.Applications.FaxMailScheduler.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
            </sectionGroup>
        </configSections>
        <userSettings>
            <BMC.Applications.FaxMailScheduler.Properties.Settings>
                <setting name="User" serializeAs="String">
                    <value>Test</value>
                </setting>
            </BMC.Applications.FaxMailScheduler.Properties.Settings>
        </userSettings>
    </configuration>

    Und beim Kompelieren mit ConfigurationSettings bekomme ich den Hinweis ich soll lieber ConfigurationManager nutzen.

    Ich glaube ConfigurationSettings nutzte man bei .NET 1.1, aber wie mache ich es bei 2.0?
     

  4. #4
    Avatar von Norbert Eder
    Norbert Eder Norbert Eder ist offline Mitglied Diamant
    Registriert seit
    Feb 2004
    Ort
    Österreich / Graz
    Beiträge
    5.137
    Blog-Einträge
    51
    Wie du es unter .NET 2 machst (bei solchen Fragen bitte dann immer die entsprechende .NET Version angeben) gibt der Debugger doch ganz nett darüber Bescheid:
    Warning 1 'System.Configuration.ConfigurationSettings.AppSettings' is obsolete: 'This method is obsolete, it has been replaced by System.Configuration!System.Configuration.ConfigurationManager.AppSettings'
    Gut, zu deiner Lösung: Zwar nicht der schönste Ansatz, aber funktioniert:
    Code csharp:
    1
    2
    3
    4
    5
    
    Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
    ClientSettingsSection css = (ClientSettingsSection)config.SectionGroups["userSettings"].Sections[0];
    SettingElement se = css.Settings.Get("User");
    Console.WriteLine("Name : " + se.Name);
    Console.WriteLine("Value: " + ((SettingValueElement)se.Value).ValueXml.InnerText);
     

  5. #5
    Avatar von hagbard_celine
    hagbard_celine hagbard_celine ist offline Mitglied Silber
    Registriert seit
    May 2006
    Beiträge
    81
    Super das !

    Wie kann ich in die Config schreiben (am besten mit Section anlegen) und sie dann speichern?

    Gibt es denn auch einen "schönen Ansatz"?
     

  6. #6
    Avatar von hagbard_celine
    hagbard_celine hagbard_celine ist offline Mitglied Silber
    Registriert seit
    May 2006
    Beiträge
    81
    Das Schreiben habe ich selbst rausgefunden:
    Code :
    1
    2
    
    ((SettingValueElement)se.Value).ValueXml.InnerText = "ABC";
    config.Save(ConfigurationSaveMode.Full, true);

    Aber es muss doch auch noch einen Eleganteren Weg geben oder?
     

Ähnliche Themen

  1. MSDN ConfigurationSettings. AppSettings[<string>]
    Von stephan r. im Forum .NET Archiv
    Antworten: 4
    Letzter Beitrag: 09.02.05, 16:02