public static IServiceCollection ConfigureServiceBus(this IServiceCollection services, IServiceBusSettings settings) { var managementClient = new ManagementClient(settings.ConnectionString); IServiceBusManagementClient serviceBusManagementClient = new ServiceBusManagementClient(managementClient); services.AddSingleton(managementClient); services.AddSingleton(serviceBusManagementClient); services.AddSingleton <IQueueClient>(new QueueClient(settings.ConnectionString, settings.QueueName)); services.AddSingleton <ITopicClient>(new TopicClient(settings.ConnectionString, settings.TopicName)); services.AddSingleton <ISubscriptionClient>(new SubscriptionClient(settings.ConnectionString, settings.TopicName, settings.SubscriptionName)); services.AddSingleton <IServiceBusClient, ServiceBusClient>(); serviceBusManagementClient.CreateQueue(settings.QueueName).Wait(); serviceBusManagementClient.CreateTopic(settings.TopicName).Wait(); serviceBusManagementClient.CreateSubscription(settings.TopicName, settings.SubscriptionName, settings.Filters).Wait(); return(services); }