2009-07-21 38 views
6

E-posta bildirimlerini işlemek için özel bir yapılandırma bölümü oluşturmak istiyorum.Özel ASP.NET Yapılandırma Bölüm

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

Bu ince NotificationConfiguration config = (NotificationConfiguration) ConfigurationManager.GetSection("notifications\notification") kullanarak çalışmak için alabilirsiniz, ama bu sadece bir <notification> eleman hitap: yapılandırma aşağıdaki biçimde olması gerekir. Birden fazla bildirimi birden fazla bildirimi karşılamak için nasıl yapabilirim?

bu oldukça uzun olduğunu kolları sınıf, bu yüzden buraya yapıştırın olmaz, ancak buradan indirilebilir:

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

teşekkür ederiz.

+0

Bir dış öğesi oluşturabilir ve tüm bildirim öğelerinizi bu grubun içine koyabilirsiniz. Bu şekilde, elde etmek istediğiniz şeyi elde edebileceksiniz. – Kirtan

+0

Güncellenmiş cevabımı kontrol et. – Kirtan

cevap

1

ConfigurationElementCollection Class'u kullanabilirsiniz.

Nasıl kullanılacağına dair bir referans CodeProject adresinde bulunabilir.

DÜZENLEME: Bir <NotificationsGroup /> dış öğesi oluşturabilir ve tüm bildirim öğelerinizi bu grubun içine koyabilirsiniz. Bu şekilde, elde etmek istediğiniz şeyi elde edebileceksiniz.

DÜZENLEME 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> 

Bu NotificationsGroup Bildirimler eleman toplama içereceği anlamına gelir.

+0

Merhaba Kirtan ConfigurationElementCollection sınıfının, bölüm değil, öğe koleksiyonu için kullanıldığı benim anlayışım. Bu sınıfı etiketi için kullanıyorum, ancak etiketi, web.config dosyasının en üstünde bir yapılandırma bölümü olarak tanımlanıyor, bu nedenle, bölüm içindeki öğeler koleksiyonunun aksine, bölümlerin bir koleksiyonunu nasıl gerçekleştirebilirim? Bölüm? – staterium

+0

Web.config'in üst kısmında, özel yapılandırmam şu şekilde tanımlanır:

etiketimde olduğu gibi bir bildirim grubu mu demek istiyorsunuz? – staterium

+1

Yardımınız için teşekkürler Kirtran. Aşağıdaki araç, sonuçta çok yardımcı oldu! http://www.codeplex.com/csd/ – staterium

İlgili konular