如何使用.NET Core在Azure门户中以编程方式创建主题

时间:2018-07-09 05:14:48

标签: asp.net azure .net-core

下面是.NET Framework中的代码。使用microsoft.azure.servicebus库的.net核心中的等效代码是什么

var namespaceManager = NamespaceManager.CreateFromConnectionString(ServiceBusConnectionString);
        if (!namespaceManager.TopicExists(topicName))
        {      // Configure Topic Settings.
            var td = new TopicDescription(topicName);
            td.MaxSizeInMegabytes = 1024;
            td.DefaultMessageTimeToLive = TimeSpan.FromMinutes(5);

            namespaceManager.CreateTopic(td);
        }

1 个答案:

答案 0 :(得分:0)

您还可以从Azure SDK github获得此issue。请参考Azure服务总线github以获取更多信息。

  

管理Azure资源的标准方法是使用Azure资源管理器。为了使用.NET Framework Service Bus客户端库中以前存在的功能,您将需要使用Microsoft.Azure.Management.ServiceBus库。这将启用动态创建/读取/更新/删除资源的用例。

当前,我们可以使用Azure流畅的SDK Microsoft.Azure.Management.Fluent和Microsoft.Azure.Management.ResourceManager.Fluent来实现。关于如何创建身份验证文件,请参阅其他SO thread

var azureCredentials = SdkContext.AzureCredentialsFactory.FromFile("authfile paht"); // or different way
var azure = Azure
               .Configure()
               .WithLogLevel(HttpLoggingDelegatingHandler.Level.Basic)
               .Authenticate(azureCredentials)
               .WithDefaultSubscription();
var sbNameSpace = "service bus name space";
var resoureGroup = "resourcegroup";
var serviceBusNamespace = azure.ServiceBusNamespaces.GetByResourceGroup(resoureGroup, sbNameSpace);
serviceBusNamespace.Topics
                   .Define("topicName")
                   .WithSizeInMB(1024)
                   .WithDefaultMessageTTL(TimeSpan.FromMinutes(5))
                   .Create();