【发布时间】:2019-10-07 21:55:58
【问题描述】:
我有一个要发送到队列中的对象,它是一个对象。我有另一个队列读取该队列。我可以以字符串的形式从该队列中读取数据,但我想将其反序列化为我发送的对象。
我尝试了几种方式对其进行格式化,并将接收到的消息字符串转换为对象,但它不正确。
Console.WriteLine("Listening for messages");
_model.BasicQos(0, 1, false);
Subscription _subscription = new Subscription(_model, QueueName, false);
while (true)
{
Thread.Sleep(2000);
//Get next message
var deliveryArgs = _subscription.Next();
//Deserialize message
var message = System.Text.Encoding.Default.GetString(deliveryArgs.Body);
var t = (MyMessageObject)_subscription.Queue.Dequeue().Body.Deserialize(typeof(MyMessageObject));
var t2 = (MyMessageObject)deliveryArgs.Body.Deserialize(typeof(MyMessageObject));
Console.WriteLine("<=== Received {0} {1}", t.myId, t.myAmount);
//Acknowledge message is processed
_subscription.Ack(deliveryArgs);
【问题讨论】:
-
您需要阅读各种方法来序列化和反序列化数据。完成后,请解释您遇到的确切问题。
-
我做了一些研究,并能够在下面找到解决方案。