在RabbitMQ中反序列化对象

问题描述 投票:-1回答:1

我有一个要在队列中发送的对象,它是一个对象。我还有另一个读取该队列的队列。我可以以字符串的形式从该队列中读取数据,但我想将其反序列化为我发送的对象。

我已经尝试过几种格式化方法,并将接收到的消息字符串转换为对象,但它不正确。

    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个回答
0
投票

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

只需要强制转换为您的对象。

© www.soinside.com 2019 - 2024. All rights reserved.