private void ReceiveFor(MessageListener messageListener)
 {
     //Action action = () => {
         try {
             DispatchingConsumer consumer = new DispatchingConsumer(this.Queue.Channel, messageListener, this.MessageTypes,
                 this.AutoAcknowledged, this);
             this.Tag = this.Queue.Channel.BasicConsume(this.Queue.Name, this.AutoAcknowledged,
                 consumer);
         }
         catch (Exception e) {
             throw new MessageException("Failed to initiate consumer.", e);
         }
     //            };
     //            action.BeginInvoke(null, null);
 }
 public void ReceiveAll(MessageListener messageListener)
 {
     this.ReceiveFor(messageListener);
 }
 public void ReceiveOnly(string[] messageTypes, MessageListener messageListener)
 {
     if(messageTypes==null) {
         messageTypes = new string[0];
     }
     this.MessageTypes = new List<string>(messageTypes);
     this.ReceiveFor(messageListener);
 }
 public DispatchingConsumer(IModel model, MessageListener messageListener, IEnumerable<string> filteredMessageTypes,
     bool autoAcknowledged, MessageConsumer messageConsumer)
     : base(model)
 {
     this.MessageListener = messageListener;
     this.FilteredMessageTypes = filteredMessageTypes;
     this.AutoAcknowledged = autoAcknowledged;
     this.MessageConsumer = messageConsumer;
 }