如何获取 Azure 服务中的主题列表

How to get list of topics in azure service

我正在尝试获取 .NET CORE 应用程序中服务总线中的主题列表。

有一种方法可以使用旧的服务总线 nuget 包获取主题列表(WindowsAzure.ServiceBus)。

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);
        }

但是我们不能在 .NET Core 应用程序中使用这个包(WindowsAzure.ServiceBus)

.NET Core 兼容包是 Microsoft.Azure.ServiceBus,我在文档页面上没有找到任何帮助。

要列出主题(或队列),您需要使用 Microsoft.Azure.ServiceBus.Management 命名空间。

using System;
using System.Threading.Tasks;
using Microsoft.Azure.ServiceBus.Management;

namespace SO68789585
{
    class Program
    {
        private const string ConnectionString = "Endpoint=sb://namespacename.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=sharedaccesskey";
        static async Task Main(string[] args)
        {
            var managementClient = new ManagementClient(ConnectionString);
            var topics = await managementClient.GetTopicsAsync();
            foreach (var topic in topics)
            {
                Console.WriteLine(topic.Path);//Prints topic name
            }
        }
    }
}