[英]Can ConfigurationElementCollection object contain for its elements another ConfigurationElementCollection objects?
[英]Key-less elements in ConfigurationElementCollection
當您繼承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>
它可以具有多個元素,並且每個元素都是無密鑰的,並且此結構應允許重復(如上所述)。 那么在這種情況下我該怎么辦?
嘗試像這樣使用ObjectIDGenerator
[ConfigurationCollection(typeof(SchedulerTaskItem), AddItemName = "Task")]
public class SchedulerTaskCollection: ConfigurationElementCollection
{
private static readonly ObjectIDGenerator idGenerator = new ObjectIDGenerator();
protected override ConfigurationElement CreateNewElement()
{
return new SchedulerTaskItem();
}
protected override object GetElementKey(ConfigurationElement element)
{
bool firstTime;
return idGenerator.GetId(element, out firstTime);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.