2009-10-13 11 views
18

Ich habe vor kurzem eine ziemlich große benutzerdefinierte Konfigurationsgruppe geschrieben. Ich bin gespannt, ob es möglich ist, diese Konfiguration in einer separaten Datei mit folgendem zu bewegen:Verschieben einer benutzerdefinierten Konfigurationsgruppe in eine separate Datei

<configuration> 
    <configSections> 
     <sectionGroup name="MyCustomGroup"> 
      <section name="MyCustomSection"/> 
     </sectionGroup> 
    </configSections> 
    <MyCustomGroup file="alt.config" /> 
</configuration> 

Dies ist etwas ähnlich, was Sie mit dem Dateiattribut für appSettings tun können. Mir ist klar, dass es höchstwahrscheinlich eine Notwendigkeit gibt, ein ConfigurationPropertyAttribute für meinen Custom-Section-Handler zu erstellen, jedoch konnte ich in dieser Hinsicht kein Beispiel oder eine Richtung finden.

Antwort

27

Soweit ich weiß, Sie nicht eine ganze section (dh MyCustomGroup) externalisieren mit dem configSource Attribut, aber Sie haben dies auf der Ebene der Abschnitte zu behandeln (dh MyCustomSection)

<configuration> 
    <configSections> 
     <sectionGroup name="MyCustomGroup"> 
       <section name="MyCustomSection"/> 
     </sectionGroup> 
    </configSections> 
    <MyCustomGroup>  
     <MyCustomSection configSource="externalfile.config" /> 
    </MyCustomGroup> 
</configuration> 

Die externe Datei externalfile.config würde dann Ihre aktuellen Konfigurationseinstellungen enthält, beginnend direkt mit Ihrem eigenen Abschnitt Tag (ohne führende <?xml....?> oder <configuration> oder irgendetwas erforderlich):

<MyCustomSection> 
    ... your settings here...... 
</MyCustomSection> 

Marc

+1

Funktioniert wie ein Charme. –

+1

Sie haben Recht. Abschnittsgruppen können nicht als Ganzes externalisiert werden, aber ihre Abschnitte können. –

+0

@marc_s - großartig, ich wusste nicht, dass das eine so alte Frage war. Ich habe gerade gegoogelt und das als Top-Ergebnis gefunden! – Liath

Verwandte Themen