Custom app.config Config Section Handler
如果我使用这样的app.config,那么通过继承自system.configuration.section的类获取"pages"列表的正确方法是什么?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="XrbSettings" type="Xrb.UI.XrbSettings,Xrb.UI" /> </configSections> <XrbSettings> <pages> </pages> </XrbSettings> </configuration> |
首先,在类中添加扩展节的属性:
1 2 3 4 5 6 7 | [ConfigurationProperty("pages", IsDefaultCollection = false)] [ConfigurationCollection(typeof(PageCollection), AddItemName ="add")] public PageCollection Pages { get { return (PageCollection) this["pages"]; } } |
然后您需要创建一个PageCollection类。我看到的所有示例都差不多相同,所以只需复制这个示例并将"namedservice"重命名为"page"。
最后添加一个扩展ObjectConfigurationElement的类:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | public class PageElement : ObjectConfigurationElement { [ConfigurationProperty("title", IsRequired = true)] public string Title { get { return (string) this["title"]; } set { this["title"] = value; } } [ConfigurationProperty("url", IsRequired = true)] public string Url { get { return (string) this["url"]; } set { this["url"] = value; } } } |
以下是示例实现中的一些文件:
- 样本配置
- 集合和元素类
- 配置节类
您还应该在codeproject上查看jon rista的.net 2.0配置上的三部分系列。
- 揭开.NET 2.0配置的神秘面纱
- 解码.NET 2.0配置的奥秘
- 破解.NET 2.0配置的奥秘
强烈推荐,写得好,非常有用!
此外,如果您发现自己经常创建配置部分,那么还有配置部分设计器,一个用于设计配置部分的图形域特定语言设计器。