public IServiceBusManager SubscribeEvent <T>(string serviceNamespace = null) where T : IEvent { var handler = _handlerFactory.ResolveEventHandler <T>(); if (handler is null) { throw new InvalidOperationException("Please register the event handler for: " + typeof(T).Name); } var serviceFrom = GetServiceName <T>() ?? serviceNamespace; if (serviceFrom == null) { throw new InvalidOperationException("Please specify the namespace the message is coming from through the [MicroService] attribute or by passing it through this function"); } string queueName = $"{_serviceSettings.Name}/{typeof(T).Name}"; var queue = _serviceBusQueueFactory.CreateServiceBusQueue(); queue.DeclareQueue(queueName); queue.Bind(serviceFrom, $"{serviceFrom}.{typeof(T).Name}"); _serviceBusMessageSubscriber.Subscribe <T>(queueName, async(message, info) => await handler.HandleAsync(message, info)); return(this); }