【问题标题】:Deserialize an object in RabbitMQ反序列化 RabbitMQ 中的对象
【发布时间】: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);

【问题讨论】:

  • 您需要阅读各种方法来序列化和反序列化数据。完成后,请解释您遇到的确切问题。
  • 我做了一些研究,并能够在下面找到解决方案。

标签: c# rabbitmq


【解决方案1】:

我找到了解决方案: var message = (object)deliveryArgs.Body.DeSerialize(typeof(object));

只需要转换成你的对象。

【讨论】:

    猜你喜欢
    • 2012-01-14
    • 1970-01-01
    • 1970-01-01
    • 2017-08-02
    • 2021-12-08
    • 2013-08-21
    • 1970-01-01
    • 2012-04-15
    • 1970-01-01
    相关资源
    最近更新 更多