protected void ReceiveMessages(HostItemSubscriber subscriber, IReceiverLink receiverLink) { subscriber.SetReceiverLink(receiverLink); receiverLink.Closed += (sender, error) => { LogItemClosed(error); }; // Start message pump that will be called when a message // is published to the host item. receiverLink.Start(subscriber.HostItemAttribute.LinkCredit, (receiver, amqpMessage) => { // Deserialize the message body into the the .NET types associated // with the handler to which the message should be dispatched. Type messageType = subscriber.DispatchInfo.MessageType; IMessage message = DeserializeMessage(amqpMessage, messageType); SetMessageApplicationProperties(amqpMessage, message); // Invoke the handler associated with the message. InvokeHandler(receiver, amqpMessage, message, subscriber); }); }