自定义 ASP.NET 配置部分
Posted
技术标签:
【中文标题】自定义 ASP.NET 配置部分【英文标题】:Custom ASP.NET Configuration Section 【发布时间】:2010-11-12 13:59:41 【问题描述】:我想创建一个自定义配置部分来处理电子邮件通知。配置需要采用以下格式:
<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>
...
我可以使用NotificationConfiguration config = (NotificationConfiguration) ConfigurationManager.GetSection("notifications\notification")
使其正常工作,但这仅适用于一个<notification>
元素。如何完成多个元素以容纳多个通知?
处理这个的类比较长,这里就不贴了,但是可以从这里下载:
http://files.getdropbox.com/u/288235/NotificationConfiguration.cs
谢谢。
【问题讨论】:
您可以创建一个您可以使用ConfigurationElementCollection Class。
如何使用它的参考可以在CodeProject找到。
编辑:您可以创建一个<NotificationsGroup />
外部元素,然后将所有通知元素放入该组中。这样,您将能够实现您想要实现的目标。
编辑 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
将包含通知的元素集合。
【讨论】:
嗨 Kirtan 我的理解是 ConfigurationElementCollection 类用于元素的集合,而不是部分。我将该类用于以上是关于自定义 ASP.NET 配置部分的主要内容,如果未能解决你的问题,请参考以下文章
为啥自定义配置部分的 StringValidator 总是失败?