2009-07-21 11 views
6

Chcę utworzyć niestandardową sekcję konfiguracji do obsługi powiadomień e-mail. Konfiguracja musi być w następującym formacie:Niestandardowa sekcja konfiguracji ASP.NET

<configSections> 
    <sectionGroup name="notifications"> 
     <section name="notification" type="NotificationConfiguration" allowLocation="true" allowDefinition="Everywhere" /> 
    </sectionGroup> 
</configSections> 
... 
<notifications> 
    <notification name="..." enabled="..." delayInMinutes="..."> 
     <recipients> 
      <add email="..." /> 
      <add email="..." /> 
      <add email="..." /> 
     </recipients> 
    </notification> 
    <notification name="..." enabled="..." delayInMinutes="..."> 
     <recipients> 
      <add email="..." /> 
      <add email="..." /> 
      <add email="..." /> 
     </recipients> 
    </notification> 
</notifications> 
... 

mogę uzyskać to do pracy grzywny za pomocą NotificationConfiguration config = (NotificationConfiguration) ConfigurationManager.GetSection("notifications\notification"), ale przeznaczony tylko dla jednej <notification> elementu. Jak mogę wykonać wiele elementów, aby uwzględnić więcej niż jedno powiadomienie?

Klasa, która obsługuje ten jest dość długa, więc nie będę wkleić go tutaj, ale można go pobrać stąd:

http://files.getdropbox.com/u/288235/NotificationConfiguration.cs

Dzięki.

+0

Możesz utworzyć element zewnętrzny , a następnie umieścić wszystkie elementy powiadomień w tej grupie. W ten sposób będziesz w stanie osiągnąć to, co chcesz osiągnąć. – Kirtan

+0

Sprawdź moją zaktualizowaną odpowiedź. – Kirtan

Odpowiedz

1

Możesz użyć ConfigurationElementCollection Class.

Informacje na temat korzystania z niego można znaleźć pod adresem CodeProject.

EDYCJA: Możesz utworzyć zewnętrzny element <NotificationsGroup />, a następnie umieścić wszystkie elementy powiadomień w tej grupie. W ten sposób będziesz w stanie osiągnąć to, co chcesz osiągnąć.

EDIT 2:

<configSections> 
    <sectionGroup name="NotificationsGroup"> 
     <section name="NotificationsGroup" type="NotificationGroupConfiguration" allowLocation="true" allowDefinition="Everywhere" /> 
    </sectionGroup> 
</configSections> 

<NotificationsGroup> 
    <Notifications> 
    </Notifications> 
    ... Multiple notifications go here, instead of one. 
    <Notifications> 
    </Notifications> 
</NotificationsGroup> 

NotificationsGroup oznacza to, że zawiera element pobierający powiadomień.

+0

Hi Kirtan Rozumiem, że klasa ConfigurationElementCollection jest używana do gromadzenia elementów, a nie sekcji. Używam tej klasy dla znacznika , ale znacznik jest zdefiniowany jako sekcja konfiguracji na górze pliku web.config, więc w jaki sposób uzyskać kolekcję sekcji, w przeciwieństwie do kolekcji elementów w obrębie Sekcja? – staterium

+0

U góry pliku web.config definiuję swoją niestandardową konfigurację w następujący sposób: Masz na myśli grupę powiadomień, tak jak w moim znaczniku ? – staterium

+1

Dzięki za pomoc Kirtran. Poniższe narzędzie również bardzo pomogło! http://www.codeplex.com/csd/ – staterium

Powiązane problemy