我很感兴趣,是否可以在 .Net 配置中收集具有相同元素的集合。 像这样,例如:
<RetrySettings>
<RetryTurn PeriodBeforeRetry="0:05:00"/>
<RetryTurn PeriodBeforeRetry="0:10:00"/>
<RetryTurn PeriodBeforeRetry="0:30:00"/>
<RetryTurn PeriodBeforeRetry="1:00:00"/>
<RetryTurn PeriodBeforeRetry="4:00:00"/>
<RetryTurn PeriodBeforeRetry="8:00:00"/>
<RetryTurn PeriodBeforeRetry="8:00:00"/>
<RetryTurn PeriodBeforeRetry="8:00:00"/>
<RetryTurn PeriodBeforeRetry="8:00:00"/>
<RetryTurn PeriodBeforeRetry="8:00:00"/>
<RetryTurn PeriodBeforeRetry="8:00:00"/>
</RetrySettings>
没有向每个 RetryTurn
成员添加恼人的 id="someUniqueId"
属性?
我不知道如何使用派生自 ConfigurationElementCollection
的自定义集合...对此有任何可能的解决方案吗?
最佳答案
我终于找到了解决方法。
在 RetryTurn
类中定义内部 Guid
属性 UniqueId
并在默认构造函数中用新的 Guid
值初始化它:
public class RetryTurnElement : ConfigurationElement
{
public RetryTurnElement()
{
UniqueId = Guid.NewGuid();
}
internal Guid UniqueId { get; set; }
...
}
在 RetryTurnCollection
类中覆盖 GetElementKey
方法,如下所示:
public class RetryTurnCollection : ConfigurationElementCollection
{
protected override object GetElementKey(ConfigurationElement element)
{
return ((RetryTurnElement)element).UniqueId;
}
...
}
关于c# - .Net 配置部分中具有相同元素的集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1293884/