加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – .Net配置部分中具有相同元素的集合

发布时间:2020-12-15 19:32:20 所属栏目:百科 来源:网络整理
导读:我很感兴趣,如果可以在.Net配置中使用相同的元素集合. 像这样,例如: RetrySettings RetryTurn PeriodBeforeRetry="0:05:00"/ RetryTurn PeriodBeforeRetry="0:10:00"/ RetryTurn PeriodBeforeRetry="0:30:00"/ RetryTurn PeriodBeforeRetry="1:00:00"/ Retr
我很感兴趣,如果可以在.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;
    }
    ...
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读