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

标签 c# .net configuration collections

我很感兴趣,是否可以在 .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/

相关文章:

c# - 在 MySql 中保持文本大小写

c# - 读取 DataTable 中的 XML 数据和架构

c# - 获取占位符中动态生成的文本框的值

c# - 构建大型 SQL 行集并在 .NET 中使用

python - 在 FastAPI 中使用多文件应用程序的配置/依赖关系

ssh 配置主机限制

c# - 为什么 Culture Info 在 .NET Core MVC 中的 Controller 和 View 中不同

.net - 为限时许可编写代码

c# - 获取总结果数并允许在与 MongoDB 的同一查询中进行分页

azure - 如何查看 Azure 应用服务 Web 应用上的最终 appSettings 值?