You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用GetSection获取配置JSON中AzureServiceBusTopic的配对键值对

解决方案

推荐方案:强类型绑定(最简洁不易出错)

先定义一个和配置结构匹配的实体类:

public class TopicConsumptionOption
{
    public string SubscriptionName { get; set; }
    public string TopicName { get; set; }
}

直接通过配置绑定读取整个数组即可自动完成配对:

List<TopicConsumptionOption> pairedConfigs = this.configuration
    .GetSection("AzureServiceBusTopic:TopicsToConsume")
    .Get<List<TopicConsumptionOption>>();

读取后的pairedConfigs就是你需要的结构:索引0对应sub1+topic1,索引1对应sub2+topic2,可以直接使用。

手动读取方案(不定义类的场景)

如果你不想额外定义实体类,修正原有代码的逻辑错误即可手动拼接配对对象:

原有代码错误点:你获取的topicToConsumeConfig已经是数组的所有子元素,每个子元素本身就包含SubscriptionName和TopicName两个字段,不需要再查询TopicsToConsume子节点。

var topicConfigNodes = this.configuration
    .GetSection("AzureServiceBusTopic:TopicsToConsume")
    .GetChildren();

// 生成配对的匿名类型集合
var pairedConfigs = topicConfigNodes.Select(node => new 
{
    SubscriptionName = node.GetSection("SubscriptionName").Value,
    TopicName = node.GetSection("TopicName").Value
}).ToList();

// 按需拆分赋值给原有字段
this.topicToConsume = pairedConfigs.Select(p => p.TopicName).ToList();
this.subscriptionName = pairedConfigs.Select(p => p.SubscriptionName).ToList();

内容的提问来源于stack exchange,提问作者moris62

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 05:15:03