/ / ServiceBusトピックがまだ存在しない場合は作成する - c#、azureservicebus

ServiceBusトピックがまだ存在しない場合は作成する - c#、azureservicebus

マイクロソフトでは、.NET ServiceBusクライアントライブラリを更新しました。ドキュメントは現在、古い WindowsAzure.ServiceBus パッケージと新しい Microsoft.Azure.ServiceBus パッケージ。私はその新しいパッケージが好きです。そのパッケージはとても洗練されており、依存性はそれほどありません。古いパッケージでは、次のようなメソッドがありました:

if (!namespaceManager.TopicExists(topicName))
{
var topic = new TopicDescription(topicName);
namespaceManager.CreateTopic(topic);
}

プログラムでトピックを作成するためのドキュメントでは、上記のようなコードで古いパッケージを使用しています。ザ NamespaceManager クラスは新しいパッケージでは利用できません。どうすればこれに相当することができますか?

回答:

回答№1の場合は3

Github Repoについて アズール・サービス・バス・ドットネットサービスバスのエンティティを管理する方法を説明しています。

このライブラリの使用方法に関するサンプルがあります:

これらのパッケージをインストールする必要があります:

  • Microsoft.Azure.Management.ServiceBus
  • Microsoft.Azure.Management.ResourceManager
  • Microsoft.IdentityModel.Clients.ActiveDirectory

あなたがトピックを作成したい場合は、面白い部分です。トピックが存在するかどうかを確認する必要はありません。Azureリソースマネージャーは、リソースが既に存在する場合にのみ更新します。

// On you"ve got the ServiceBusManagementClient
ServiceBusManagementClient sbClient = ...

sbClient.Topics.CreateOrUpdateAsync("resource group name", "namespace name", "topic name",
new Microsoft.Azure.Management.ServiceBus.Models.SBTopic());

回答№2の場合は1

あなたが待つことができるなら、将来のオプションもあります - NamespaceManagerはスタンドアロンパッケージとして、 次の問題。ザ サポートするオプション 問題にも記載されています。

  • 存在チェックに限定してメタデータを返す
  • GetRuntimeInformation(すべてのカウントと最終状態を取得する、概算カウント、正確に10秒以内)
  • GetQueueNames、GetTopicNames(エンティティ名のリスト)
  • エンティティを作成する
  • エンティティを削除
  • 更新(更新するメタデータの詳細が必要、実装中に実行可能)
  • FindOrCreate(Upsert - キューは存在しません)
  • UpdateOrCreate(Upsert)

もしあなたが「あなたの NamespaceManagerその後、問題に応じて価値があります。