2009-10-13 16 views
18

Niedawno napisałem dość dużą niestandardową grupę konfiguracji. Jestem ciekaw, czy jest możliwe, aby przenieść tę konfigurację do osobnego pliku poprzez następujące:Przenoszenie niestandardowej grupy konfiguracji do oddzielnego pliku

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

To jest coś podobnego do tego, co można zrobić z atrybutem pliku dla AppSettings. Zdaję sobie sprawę, że najprawdopodobniej istnieje potrzeba utworzenia obiektu ConfigurationPropertyAttribute dla mojej niestandardowej sekcji obsługi sekcji, jednak nie udało mi się znaleźć żadnego przykładu ani kierunku w tym zakresie.

Odpowiedz

27

O ile wiem, nie uzewnętrznić cały SectionGroup (tj MyCustomGroup) za pomocą atrybutu configSource, ale trzeba się tym zająć na poziomie sekcji (tj MyCustomSection)

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

Zewnętrzne plik externalfile.config będzie zawierało swoje aktualne ustawienia konfiguracyjne, wychodząc bezpośrednio z własnego tagu sekcji niestandardowych (nie prowadząc <?xml....?> lub <configuration> lub cokolwiek potrzebne):

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

Marc

+1

Działa jak urok. –

+1

Masz rację. Grupy przekrojów nie mogą być eksternalizowane jako całość, ale jego sekcje mogą. –

+0

@marc_s - świetnie, nie zdawałem sobie sprawy, że to było takie stare pytanie. Właśnie googlowałem i uważałem to za najlepszy wynik! – Liath

Powiązane problemy