Laden...

In App.Config Liste von Werten für einen Parameter

Erstellt von Pedro_15 vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.609 Views
P
Pedro_15 Themenstarter:in
375 Beiträge seit 2005
vor 13 Jahren
In App.Config Liste von Werten für einen Parameter

Hallo,

könnt Ihr mir bitte bei einem kleinen Problem helfen?

Ich möchte in der Config Datei eine Liste von Werten für einen Paramter speichern.

Die Werteliste kann jetzt 0-n Einträge haben. Wie kann ich das in dem Configfile definieren und dann wieder in eine Liste auslesen?

so geht es nicht ....


<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="Werteliste" value="Wert1" />
    <add key="Werteliste" value="Wert2" />
  </appSettings>
</configuration>

und so auch nicht... oder?


<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="Werteliste" >
         <value>Wert1</value>
         <value>Wert2</value>
    </add>
  </appSettings>
</configuration>

Wie lese ich das ganze dann wieder aus?


// ????????????????????
foreach (string value in ConfigurationManager.AppSettings[key])
{
      Console.WriteLine("Value: {1}", value);
}

Danke für die Hilfe.

Pedro

49.485 Beiträge seit 2005
vor 13 Jahren

Hallo Pedro_15,

wie die Liste in der app.config gespeichert wird, kann und sollte dir egal sei.

Lege entsprechend dem Vorgehen in [Tutorial] Das neue Konfigurationsmodell im .NET Framework 2.0 einen Setting zu einem Listentyp an.

Das Auslesen sollte, wenn ich nichts übersehe, über die entsprechende (generierte) Settings-Property ganz normal gehen. Du bekommst dort wieder das Objekt vom Listentyp.

Der Weg über ConfigurationManager.AppSettings wird nicht funktionieren, weil du da als Ergebnis immer einen String bekommst.

herbivore

P
Pedro_15 Themenstarter:in
375 Beiträge seit 2005
vor 13 Jahren

Danke für die Hilfe.

Habe jetzt die Definition über das AppSettings Form im VisualStudio gemacht.

Type: System.Collection.Specialized.StringCollection

Ergebnis:


<applicationSetting>
  <Anwendung.Properties.Settings>
    <setting name="FolderFilter" serializeAs="Xml">
    <value>
      <ArrayOfString xmlns:xsi... xmlns:xsd... >
         <string>.svn</string>
         <string>temp</string>
      </ArrayOfString>
    </value>
    <setting>
  </Anwendung.Properties.Settings>
</applicationSetting>

Jetzt muss ich es nur noch in eine Liste wieder auslesen....


foreach (String value in Properties.Settings.Default.FolderFilter)
{
   filterList.Add(value);
}

Danke für die Hilfe!

Pedro