2009-07-21 17 views
6

Desidero creare una sezione di configurazione personalizzata per gestire le notifiche e-mail. La configurazione deve essere nel seguente formato:Sezione di configurazione ASP.NET personalizzata

<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> 
... 

posso farlo funzionare bene con NotificationConfiguration config = (NotificationConfiguration) ConfigurationManager.GetSection("notifications\notification"), ma questo si rivolge solo per un <notification> elemento. Come posso realizzare più elementi per ospitare più di una notifica?

La classe che gestisce questo è abbastanza lungo, quindi non mi incollarlo qui, ma può essere scaricato da qui:

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

Grazie.

+0

È possibile creare un elemento esterno e quindi inserire tutti gli elementi di notifica all'interno di quel gruppo. In questo modo, sarai in grado di ottenere ciò che desideri ottenere. – Kirtan

+0

Controlla la mia risposta aggiornata. – Kirtan

risposta

1

È possibile utilizzare ConfigurationElementCollection Class.

Un riferimento su come utilizzarlo può essere trovato su CodeProject.

MODIFICA: è possibile creare un elemento esterno <NotificationsGroup /> e quindi inserire tutti gli elementi di notifica all'interno di quel gruppo. In questo modo, sarai in grado di ottenere ciò che desideri ottenere.

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> 

Ciò significa che NotificationsGroup conterrà la raccolta dell'elemento di notifiche.

+0

Hi Kirtan È a mia conoscenza che la classe ConfigurationElementCollection viene utilizzata per una raccolta di elementi, non di sezioni. Io uso quella classe per il tag , ma il tag è definito come una sezione di configurazione nella parte superiore del file web.config, quindi come faccio a realizzare una collezione di sezioni, al contrario di una raccolta di elementi all'interno di una sezione? – staterium

+0

Nella parte superiore di web.config, definisco la mia configurazione personalizzata come segue:

Intendi un gruppo di notifiche, come nel mio tag ? – staterium

+1

Grazie per il tuo aiuto Kirtran. Lo strumento sottostante alla fine ha anche aiutato molto! http://www.codeplex.com/csd/ – staterium

Problemi correlati