【发布时间】:2021-01-07 04:58:01
【问题描述】:
我正在按照 Microsoft 文档中的建议使用 Azure.Storage.Queues 包。我正在使用 Queue Client 连接到队列,如下所示,
public class QueueClientSingleton : IQueueClientSingleton
{
private readonly Lazy<QueueClient> _queueClientXyz;
private readonly IConfiguration _configuration;
public QueueClientSingleton(IConfiguration configuration)
{
_configuration = configuration;
_queueClientXyz = new Lazy<QueueClient>(() => new QueueClient(_configuration.ConnectionString, "QueueXyz");
}
}
上述代码未经测试,但应该可以提供对 QueueXyz 的访问。我有一个用例,我想通过连接字符串连接到存储帐户一次,然后
- 通过不同的队列读取(传递队列名称并从该队列获取消息)
- 列出该存储帐户中存在的所有队列
我发现了类似下面的内容,但这是使用已弃用的包:Microsoft.WindowsAzure.Storage,我们没有在我们的解决方案中使用它。有没有我们可以用一个新的包做类似的事情:Azure.Storage.Queues
public static void CreateKnownAzureQueues(string azureConnectionString)
{
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(azureConnectionString);
CloudQueueClient queueClient = storageAccount.CreateCloudQueueClient();
foreach (var queueName in AzureQueues.KnownQueues)
{
queueClient.GetQueueReference(queueName).CreateIfNotExists();
}
}
此外,还可以在链接下方找到请求存储帐户中所有队列的列表。但是,它没有提供任何这样的例子。
https://docs.microsoft.com/en-us/rest/api/storageservices/list-queues1#request
【问题讨论】:
标签: .net azure .net-core azure-storage azure-storage-queues