示例#1
0
        /// <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;
                }
            });
        }