public void Process(EasyBus.Contracts.IMessageHandler handler, IMessage <string> msg) { var messsageType = handler.GetType().BaseType.GetGenericArguments().First(); var payload = JsonConvert.DeserializeObject(msg.Body, messsageType) as EasyBus.Contracts.IMessage; payload.CorrelationId = msg.Properties.CorrelationId; handler.Handle(payload); }
public void Subscribe(EasyBus.Contracts.IMessageHandler handler) { bus = container.GetInstance <IRabbitBus>().Bus; // Get queue name. var queueName = handler.QueueName; var queue = bus.Advanced.QueueDeclare(queueName); bus.Advanced.Consume <string>(queue, (msg, info) => { try { Process(handler, msg); } catch (Exception exc) { HandleConsumerError(queue, exc); } }); }