/// <summary> /// Event handler. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Consumer_Received(object sender, BasicDeliverEventArgs e) { Task.Factory.StartNew(() => { try { if (this.ReceivedHandler == null) { throw new ArgumentException("ReceivedHandler must be not null"); } this.ReceivedHandler(sender, e); if (binarySender != null) { var binaryBody = binarySender.Invoke(e); responceSender.Publish(binaryBody); } else if (objectSender != null) { var objectBody = objectSender.Invoke(e); responceSender.Publish(objectBody); } } catch (ArgumentException exception) { consumer.HandleBasicCancel(consumer.ConsumerTag); throw exception; } }); }