AMQP.Net Lite与POCO课程

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

我们正在使用Azure团队的https://github.com/Azure/amqpnetlite

描述说我们必须在消息总线上使用AmqpContractAmqpMember属性类,如ActiveMQ。

我们还有很多类,我们想要迁移到这个Amqp库,但是可以使用没有这些属性的序列化器并直接使用我们的POCO类吗?

另一个解决方法可能是(?)序列化或类到json并使用包装类来发送我们的有效负载:

   [AmqpContract]
   public class OurMessage
   {
      [AmqpMember]
      public string JsonPayload {get;set;}
   }

或者我们应该避免这种解决方法?

.net-core amqp azureservicebus
1个回答
0
投票

您提到的POCO课程目前不受支持。您需要选择另一个序列化程序。获得JSON字符串或字节数组后,无需定义包装类。只需直接创建带有效负载的AMQP消息,然后从接收方的消息体中获取它。

// sender
var msg = new Message(jsonPayload);
sender.Send(msg);

// receiver
var msg2 = receiver.Receive();
var jsonPayload = msg2.GetBody<string>();

字节数组也可以做同样的事情。

AMQP序列化器设计简单,必须明确注释所有内容。对于大多数情况,这是可能的,它有助于避免双重编码并使与其他AMQP客户端的操作更容易。

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