Хорошо, я очень ОЧЕНЬ плохо знаком с MSMQ и уже запутался.
Я создал личную очередь и добавил к ней несколько сообщений, пока все хорошо.НО, когда я получаю сообщения обратно из очереди, тело сообщения содержит пустой объект того типа, который я добавил.Под этим я не подразумеваю, что тело имеет значение null, оно имеет ссылку на тип объекта, который я добавил, но оно не создано, поэтому все свойства имеют нулевое состояние или состояние по умолчанию.
Это код, который я использую для добавления в очередь:
using (var mQueue = new MessageQueue(QueueName))
{
var msg = new Message(observation)
{
Priority = MessagePriority.Normal,
UseJournalQueue = true,
AcknowledgeType = AcknowledgeTypes.FullReceive,
};
mQueue.Send(msg);
}
А это код, который удаляет сообщения из очереди:
using (var mQueue = new MessageQueue(QueueName))
{
mQueue.MessageReadPropertyFilter.SetAll();
((XmlMessageFormatter)mQueue.Formatter).TargetTypes =
new[] { typeof(Observation) };
var msg = mQueue.Receive(new TimeSpan(0, 0, 5));
var observation = (Observation)msg.Body;
return observation;
}