我在 C# 中有一個 RabbitMQ 數據服務,並且“輸出”了一些消息。訂閱者/客戶端使用 Java。我可以接收消息,我知道如何在 C# 中反序列化,但我不知道如何將消息反序列化為對象。在爪哇。
C# 序列化:
byte[] message;
BinaryFormatter bf = new BinaryFormatter();
using (var ms = new MemoryStream())
{
bf.Serialize(ms, updateMessage);
message = ms.ToArray();
}
C#反序列化:
MyObject message = null;
using (var memStream = new MemoryStream())
{
var binForm = new BinaryFormatter();
memStream.Write(body, 0, body.Length);
memStream.Seek(0, SeekOrigin.Begin);
message = (MyObject)binForm.Deserialize(memStream);
}
Java接收器:
@RabbitListener(queues = queueName)
public void receive(??? message ) {
// deserailize message right here
// btw, I do not know what type of received message should be initialized.
}
在 Java 中反序列化一個用 .NET 內置的二進制序列化器序列化的對像是不可能的(你必須自己實現反序列化器)。
最簡單的選擇是使用基於文本的序列化選項,例如 JSON 和 XML。有很多關於如何在 C# 和 Java 中執行此操作的教程。
如果您需要使用二進制格式,可以查看 Google 的協議緩衝區或 apache thrift。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句