Saschas Weblog

ESCde Developer Blog

  Home :: Kontakt :: RSS Feed
  30 Posts :: 0 Artikel :: 10 Kommentare :: 32 Trackbacks

Archiv

Post Kategorien

ESCde

ESCde Blogger

Verwendung von benutzerdefinierten Konfigurationsabschnitten mit verschachtelten Elementen.

<demoConfiguration oneStringProperty="Ein Textwert!" oneNumericProperty="25"> <demoSubElement anotherStringProperty="SubElement Property" /> </demoConfiguration>

Wenn die Konfiguration verschachtelte Elemente enthalten muß, wird das Subelement in einer Eigenschaft in der Elternklasse mit dem ConfigurationProperty Attribut gekennzeichnet. Wichtig ist hier der Cast auf den Typ des Subelements beim Lesen der Eigenschaft.

[ConfigurationProperty("demoSubElement")] public DemoSubElement DemoSubElement { get { return (DemoSubElement)this["demoSubElement"]; } set { this["demoSubElement"] = value; } }

Das Subelement selbst wird in einer neuen Klasse abgebildet, die von System.Configuration.ConfigurationElement abgeleitet wird. Die Eigenschaften dieser Klasse werden wie gehabt mit ConfigurationProperty Attributen auf die entsprechenden Attribute in der .config-Datei gemappt.

public class DemoSubElement : ConfigurationElement { [ConfigurationProperty("anotherStringProperty", DefaultValue = "Standardwert", IsRequired = true)] public string AnotherStringProperty { get { return this["anotherStringProperty"].ToString(); } set { this["anotherStringProperty"] = value; } } }

Auf der Webseite ist das neue Subelement jetzt verwendbar.

WebConfigurationCustom.DemoSection dc = (DemoSection)WebConfigurationManager.GetSection("demoConfiguration"); string prop = dc.DemoSubElement.AnotherStringProperty; // = "SubElement Property"
veröffentlicht am 24.07.2006 10:41