2009-07-21 21 views
6

Quiero crear una sección de configuración personalizada para manejar las notificaciones por correo electrónico. La configuración debe estar en el siguiente formato:Sección de configuración personalizada de 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> 
... 

puedo conseguir que esto funcione bien utilizando NotificationConfiguration config = (NotificationConfiguration) ConfigurationManager.GetSection("notifications\notification"), pero esto sólo es apto para una <notification> elemento. ¿Cómo logro múltiples elementos para acomodar más de una notificación?

La clase que se encarga de esto es bastante largo, así que no se pegue aquí, pero se puede descargar desde aquí:

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

Gracias.

+0

Puede crear un elemento externo y luego colocar todos los elementos de notificación dentro de ese grupo. De esta forma, podrás lograr lo que quieres lograr. – Kirtan

+0

Verifique mi respuesta actualizada. – Kirtan

Respuesta

1

Puede usar el ConfigurationElementCollection Class.

Se puede encontrar una referencia sobre cómo usarlo en CodeProject.

EDITAR: Puede crear un elemento externo <NotificationsGroup /> y luego colocar todos los elementos de notificación dentro de ese grupo. De esta forma, podrás lograr lo que quieres lograr.

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> 

Esto significa que NotificationsGroup contendrá la colección de elementos de notificaciones.

+0

Hola Kirtan Tengo entendido que la clase ConfigurationElementCollection se usa para una colección de elementos, no de secciones. Utilizo esa clase para la etiqueta , pero la etiqueta se define como una sección de configuración en la parte superior del archivo web.config, así que ¿cómo puedo lograr una colección de secciones, a diferencia de una colección de elementos dentro de una ¿sección? – staterium

+0

En la parte superior del web.config, defino mi configuración personalizada de la siguiente manera:

¿Te refieres a un grupo de notificaciones, como en mi etiqueta ? – staterium

+1

Gracias por su ayuda Kirtran. La herramienta a continuación finalmente ayudó mucho también! http://www.codeplex.com/csd/ – staterium

Cuestiones relacionadas