/ / Створіть тему 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);
}

Документація для створення теми програмним шляхом все ще використовує старий пакет, з таким же кодом, як вище. The NamespaceManager клас недоступний в новому пакеті, так як я можу досягти еквівалента цього?

Відповіді:

3 для відповіді № 1

На репо Гітуб Azure-service-bus-dotnet, вони пояснюють, як керувати юридичними особами:

Існує зразок того, як використовувати цю бібліотеку:

вам потрібно встановити ці пакунки:

  • 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());

1 для відповіді № 2

Існує також майбутній варіант, якщо ви можете чекати - NamespaceManager як окремий пакет, описаний в наступний випуск. The варіанти, які він буде підтримувати також вказані у випуску.

  • Отримати - обмежується наявністю перевірки та надання метаданих назад
  • GetRuntimeInformation (Отримує всі підрахунки та останній стан, Приблизний підрахунок, точний протягом 10s)
  • GetQueueNames, GetTopicNames (список імен об'єктів)
  • Створити об'єкт
  • Видалити об'єкт
  • Оновлення (потрібна інформація про те, які метадані для оновлення можна зробити під час виконання)
  • FindOrCreate (Upsert - черга не існує, створіть її)
  • UpdateOrCreate (Upsert)

Якщо вам подобається легкість NamespaceManager, то варто звернути увагу на проблему.