如何从Azure Bus Service检索所有主题?

时间:2015-06-03 06:32:44

标签: c# azure azureservicebus

我有一个包含12个主题的Azure服务总线。我正在制作一个可扩展的应用程序,其中如果主题数量减少或增加,应用程序应使用connectionString来获取该服务总线的所有主题名称。

如何从特定的Azure服务总线获取所有主题名称?

请提供从特定Azure服务总线检索主题列表的代码示例。

2 个答案:

答案 0 :(得分:3)

感谢@RyanChu的正确答案。

以下是实现上述要求的必需代码段

string connectionString = CloudConfigurationManager.GetSetting("Microsoft.ServiceBus.ConnectionString");
NamespaceManager nm = NamespaceManager.CreateFromConnectionString(connectionString);
IEnumerable<TopicDescription> topicList=nm.GetTopics();
        foreach(var td in topicList)
        {
            Console.WriteLine(td.Path);
        }

有关详细信息,请参阅NamespaceManager.GetTopics() Documentation

答案 1 :(得分:0)

Microsoft.Azure.Servicebus是.NET Core的软件包。语法略有不同。 这是我项目中的一段代码。

var managementClient = new ManagementClient(_connectionString);
var topicDescriptions = new List<TopicDescription>();

for (int skip = 0; skip < 1000; skip += 100)
{
    var topics = await managementClient.GetTopicsAsync(100, skip);
    if (!topics.Any()) break;

    topicDescriptions.AddRange(topics);
}