public void Send(IMessage[] messages) { IMessageSerializer serializer = new FormatterMessagesSerializer(new BinaryFormatter()); Message toSend = new Message(); serializer.Serialize(messages, toSend.BodyStream); Queue.Send(toSend); }
protected IList<IMessage> ReceiveFromQueue(int timeoutMilliseconds) { IList<IMessage> result = null; Message msmqMessage = null; if (Timeout.Infinite == timeoutMilliseconds) { msmqMessage = Queue.Receive(); } else { try { msmqMessage = Queue.Receive(TimeSpan.FromMilliseconds(timeoutMilliseconds)); } catch (MessageQueueException ex) { switch (ex.MessageQueueErrorCode) { case MessageQueueErrorCode.QueueDeleted: { Queue.Close(); break; } case MessageQueueErrorCode.IOTimeout: { //Logger.Info("StarvationTimeSpan passed."); break; } default: { throw; } } } } if (msmqMessage != null) { IMessageSerializer serializer = new FormatterMessagesSerializer(new BinaryFormatter()); IList<IMessage> messages = serializer.Deserialize(msmqMessage.BodyStream); result = messages; } return result; }