Ale*_*nik 3 .net c# collections configuration
我很感兴趣,如果可以在.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>
Run Code Online (Sandbox Code Playgroud)
没有id="someUniqueId"
为每个RetryTurn
成员添加恼人的属性?
我不知道如何制作这个,使用自定义集合,派生自ConfigurationElementCollection
......任何可能的解决方案?
Ale*_*nik 10
最后我找到了解决方法.在RetryTurn
类中定义内部Guid
属性UniqueId
并Guid
在默认构造函数中使用新值初始化它:
public class RetryTurnElement : ConfigurationElement
{
public RetryTurnElement()
{
UniqueId = Guid.NewGuid();
}
internal Guid UniqueId { get; set; }
...
}
Run Code Online (Sandbox Code Playgroud)
在RetryTurnCollection
类覆盖GetElementKey
方法中,如下所示:
public class RetryTurnCollection : ConfigurationElementCollection
{
protected override object GetElementKey(ConfigurationElement element)
{
return ((RetryTurnElement)element).UniqueId;
}
...
}
Run Code Online (Sandbox Code Playgroud)