2009-08-31 69 views

回答

4

IObjectMessage的默認值爲System.Runtime.Serialization.Formatters.Binary.BinaryFormatter。

你可以通過例如自己設置。

IObjectMessage m = session.CreateObjectMessage(); 

((ActiveMQObjectMessage)m).Formatter=new SoapFormatter();//Or any IFormatter 

您將需要在接收端訪問IObjectMessage.Body如果你不使用默認的BinaryFormatter發送對象之前設置的格式。

如果您願意,您還可以發送/接收IByteMessage/ITextMessage,並以任何您喜歡的方式將對象序列化爲消息。

+0

任何關於二進制格式向後兼容性的好信息?刪除/添加字段會發生什麼情況? – TheSoftwareJedi 2009-08-31 18:31:55

+0

似乎在實踐中(在我有限的經驗atleat)缺少fileds只是得到他們的默認值。但是這個序列化與NMS/ActiveMQ無關。有很多關於在stackoverflow上進行序列化的問題,都圍繞着這些問題。 – nos 2009-08-31 19:32:28