迁移 WindowsAzure.ServiceBus 到 Azure.Messaging.ServiceBus

Migrate WindowsAzure.ServiceBus to Azure.Messaging.ServiceBus

Microsoft 将于 2021 年 11 月停止对服务总线的经典 API 支持(如所述 here

在我们的代码中,我们使用 WindowsAzure.ServiceBus 包。 这是一个 ol 包,Microsoft 建议使用新的 Azure.Messaging.ServiceBus 包。

WindowsAzure.ServiceBus 包包含 GetQueues(String) 方法。此方法可以使用 filter 参数按名称或属性过滤队列。如果 ServiceBus 有很多队列,这将非常有用。

但我在新 Azure.Messaging.ServiceBus 包中找不到与此功能等效的内容。

如何在新包中实现过滤器功能?

感谢您的帮助。

How can I implement filter feature in new package?

您将需要使用 GetQueuesAsync method in ServiceBusAdministrationClient class 来获取此信息。

Please see the sample code:

using System;
using System.Threading.Tasks;
using Azure.Messaging.ServiceBus.Administration;

namespace SO67703647
{
    class Program
    {
        static string connectionString = "your-connection-string";
        static async Task Main(string[] args)
        {
            var adminClient = new ServiceBusAdministrationClient(connectionString);
            var queuesListingResult = adminClient.GetQueuesAsync();
            await foreach (var item in queuesListingResult)
            {
                Console.WriteLine(item.Name);
            }
            Console.WriteLine("=======================");
            Console.WriteLine("Press any key to terminate the application.");
            Console.ReadKey();
        }
    }
}