如何获取 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
}
}
}
}
我正在尝试获取 .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
}
}
}
}