/ / Създайте ServiceBus тема, ако тя вече не съществува - c #, azureservicebus

Създайте темата на ServiceBus, ако тя вече не съществува - c #, azureservicebus

Microsoft актуализира своята клиентска библиотека .NET ServiceBus и в момента тяхната документация е разделена между старата WindowsAzure.ServiceBus пакета и новия Microsoft.Azure.ServiceBus пакет. Харесвам новия пакет, тъй като е много по-чист и има по-малко зависимости. В стария пакет имахме следните методи:

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

Документацията за създаване на тема програмно все още използва стария пакет с код като горепосочения. Най- NamespaceManager класът не е наличен в новия пакет, така че как мога да постигна еквивалента на това?

Отговори:

3 за отговор № 1

На Github Repo лазурно-сервиз-автобус-DotNet, те обясняват как да управлявате организациите на Service Bus:

  • Мога ли да управлявам автобусите на Bus Service в тази библиотека?:

    Стандартният начин за управление на Azure ресурси е чрез използване Azure Resource Manager, За да използвате функцията, която е съществувала преди това в клиентската библиотека .NET Framework Service Bus, ще трябва да използвате функцията Microsoft.Azure.Management.ServiceBus библиотека. Това ще позволи използването на случаи, които динамично създават / четат / актуализират / изтриват ресурси.

Има пример за това как да използвате тази библиотека:

трябва да инсталирате тези пакети:

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

Интересна част за вас, ако искате да създадете тема. Имайте предвид, че няма нужда да проверявате дали темата съществува. Мениджърът на Azure Resources само актуализира ресурса, ако той вече съществува.

// 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 като самостоятелен пакет, описан в следния брой, Най- варианти, които ще поддържа са изброени и в изданието.

  • Вземете - ограничено да съществува проверка и дайте обратно метаданните
  • GetRuntimeInformation (получава всички преброявания и последно състояние, приблизителен брой, точен в рамките на 10 секунди)
  • GetQueueNames, GetTopicNames (Списък имена на обекти)
  • Създайте обект
  • Изтриване на обект
  • Актуализиране (Нуждаете се от подробности какви метаданни да се актуализират, може да се направи по време на изпълнението)
  • FindOrCreate (Upsert - опашката не съществува, създайте го)
  • UpdateOrCreate (Upsert)

Ако ти харесаш лекотата NamespaceManager, след което си струва да следвате проблема.