如何将对象发送到ActiveMQ(C#)

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

[我正在尝试发送一个对象(例如:StudentModel with ID, Name, Address,..)ActiveMQ,我已经阅读了很多教程,但对于c#却了解不多。我遵循了一个教程,但它不起作用。这是我的发送形式的代码:] >

    Person p = new Person(123, "vtp", new DateTime(1999, 11, 01));
    IObjectMessage m = session.CreateObjectMessage(p);
    producer.Send(m);

以接收形式:

    private void Consumer_Listener(IMessage message)
    {
        if (message is IObjectMessage)
        {            
            IObjectMessage obj = message as IObjectMessage; //1
            Person p = (Person)obj.Body; //2
            MessageBox.Show(p.Hoten); //3
         }
    }

我调试并意识到代码仅在语句1和2处重复,而不在语句3中运行

我正在尝试向ActiveMQ发送对象(例如,ID,​​名称,地址,..为StudentModel的对象),我已经阅读了很多教程,但对于c#来说却很少。我遵循了一个教程,但是它不起作用。这是我在...中的代码...

c# visual-studio activemq
1个回答
0
投票

带有ActiveMQ的序列化ObjectMessage样式消息传递实际上是针对基于Java的客户端的。使用.NET特定的ObjectMessage是一个危险的提议,并且在几乎所有情况下都应避免使用。如果有任何Java客户端要使用这些消息,则.NET对象的二进制有效载荷将导致它们无法解组有效载荷,并且会将消息NACK到DLQ。同样,如果代理安装了一个恰巧触发了消息主体的解组的插件,则该过程将失败,消息可能会通过DLQ或断开连接。

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