2010-05-06 10 views
7

Ich habe (hoffentlich) Setup Configuration von meinem eigenen Design mit E-Mail als Schlüssel. Was jetzt? Im Web schwer zu finden. Wie kann ich:Erste config-Element von Configuration

  1. iterieren?

  2. Prüfen Sie, ob ein bestimmtes Element vorhanden ist?

  3. ein bestimmtes Element bekommen?

... gegeben:

YourConfigElement config = 
    ConfigurationManager.GetSection("YourSectionName") as YourConfigElement; 

Teil Antwort

1.

foreach (X x in config.XCollection) 
      <code here> 

2. Ersetzen Sie "Code hier" durch

{ 
    if (x.Y == needle) 
    { 
     hasIndeed = true; 
     break; 
    } 
} 

3. ersetzen "Code hier" mit

{ if (x.Y == needle) 
     cameUpWith = x; 
     break; 
} 

Winziger Geruch.

Antwort

2

ich nicht ganz verstehen, was Ihre Probleme sind - aber im Grunde, wenn Sie ein benutzerdefiniertes Konfigurationselement haben, sollten Sie in der Lage sein, dass aus der Konfigurationsdatei abzurufen etwas mit wie:

YourConfigElement config = 
    ConfigurationManager.GetSection("YourSectionName") as YourConfigElement ; 

Sobald Sie haben Ihre Konfigurationselement, können Sie damit machen, was Sie wollen - Sie all diese Dinge umsetzen können Sie gefragt - überprüfen existance eines Elements, erhalten ein bestimmtes Element usw.

Sie auch dreiteilige Jon Rista sollten überprüfen, Weitere Informationen über die .NET 2.0-Konfiguration finden Sie auf CodeProject - vielleicht helfen Ihnen diese Artikel dabei, Ihre yo freizuschalten ur config "Herausforderung" ;-)

Sehr empfehlenswert, gut geschrieben und sehr hilfreich! Wenn Sie es noch nicht entdeckt haben, gibt es eine ausgezeichnete Configuration Section Designer auf Codeplex, die visuelle Gestaltung von Konfigurationsbereichen und Sammlungen ein Kinderspiel macht und schreibt alle klebrigen Klebstoff-Code für Sie - sehr praktisch!

Marc

+0

Vielen Dank für Ihre Antwort. Der schwierige Teil für mich ist Sammlungsarten. Ich habe # 1 gelöst, aber es scheint, dass es einen schöneren und schnelleren Weg geben sollte, wenn Sie nach einem Schlüssel suchen. Ich überprüfe deine Links. – Martin

+1

Ich bin eigentlich ziemlich amüsiert. Die von Ihnen vorgeschlagenen Seiten sind nicht die ersten ähnlichen Inhalte, die ich besucht habe. Inzwischen bin ich in der Lage, Sammeltypen zu definieren, Elemente in der Konfiguration hinzuzufügen, aber die Sammlung in meinem Code zu verwenden. Es macht die AsQueryable() -Methode verfügbar. Ich bin mir sicher, dass das ein Hinweis ist, aber das abfragbare wiederum entlarvt nichts von Nutzen - zum Beispiel erhalten oder enthält. – Martin

8

Was Sie wollen, ist Ihr eigenes Generikum ConfigurationElementCollection Basisklasse, die IList<T> implementiert. Sie können dann von dieser für alle Konfigurations Sammlungen erben und auf die Menge der Arbeit reduzieren, die Sie tun müssen, wenn Konfiguration Sammlungen zu schaffen.

Mit ein wenig mehr Arbeit können Sie auch eine Wörterbuchsammlung haben.