【发布时间】:2014-12-24 08:28:05
【问题描述】:
当你继承 ConfigurationElementCollection 时:
public class Directories : ConfigurationElementCollection
{
...
}
ConfigurationElementCollection 需要 GetElementKey(System.Configuration.ConfigurationElement) 的实现。
但我不关心键,因为我有一个这样的自定义配置部分:
<directorySection>
<directories>
<directory pickUpDirectory="C:\Users\User\Documents\PickUp\0" dropOffDirectory="C:\Users\User\Documents\DropOff\0"/>
<directory pickUpDirectory="C:\Users\User\Documents\PickUp\0" dropOffDirectory="C:\Users\User\Documents\DropOff\0"/>
<directory pickUpDirectory="C:\Users\User\Documents\PickUp\1" dropOffDirectory="C:\Users\User\Documents\DropOff\1"/>
<directory pickUpDirectory="C:\Users\User\Documents\PickUp\2" dropOffDirectory="C:\Users\User\Documents\DropOff\2"/>
</directories>
</directorySection>
它可以有多个元素,每个元素都是无键的,这种结构应该允许重复(如上)。那么在这种情况下我该怎么办呢?
【问题讨论】:
-
那么不要继承
ConfigurationElementCollection:) 使用另一种方式来解析/生成您的xml。 -
@L.B 我本来打算走那条路,但现在好像我别无选择;自定义 .config 部分没有开箱即用的支持吗?
-
您是否尝试过仅读取自定义部分的应用程序配置文件并将其反序列化为适合您需要的任何类?
-
@Louis 我认为 L.B.建议这个
-
也许我误解了@L.B 的答案,我觉得它更通用。现在我读了我的,它实际上并没有那么不同。无论如何,只要你知道 XML 结构,你根本不需要实现 ConfigurationElement。例如,您始终可以使用 Linq XML 读取 ApplicationSettings["directories"]。也许我没有看到您的要求?
标签: c# .net configuration config custom-configuration