2
我打算使用Apache NMS進行ActiveMQ消息傳遞,並且想知道在我發送的對象上將使用哪種序列化方法? XML /二進制?什麼控制序列化,我如何定製它?什麼序列化方法用於ActiveMQ NMS C#對象消息?
有沒有人有與C#對象做這個經驗?你知道有什麼陷阱嗎?
我打算使用Apache NMS進行ActiveMQ消息傳遞,並且想知道在我發送的對象上將使用哪種序列化方法? XML /二進制?什麼控制序列化,我如何定製它?什麼序列化方法用於ActiveMQ NMS C#對象消息?
有沒有人有與C#對象做這個經驗?你知道有什麼陷阱嗎?
IObjectMessage的默認值爲System.Runtime.Serialization.Formatters.Binary.BinaryFormatter。
你可以通過例如自己設置。
IObjectMessage m = session.CreateObjectMessage();
((ActiveMQObjectMessage)m).Formatter=new SoapFormatter();//Or any IFormatter
您將需要在接收端訪問IObjectMessage.Body如果你不使用默認的BinaryFormatter發送對象之前設置的格式。
如果您願意,您還可以發送/接收IByteMessage/ITextMessage,並以任何您喜歡的方式將對象序列化爲消息。
任何關於二進制格式向後兼容性的好信息?刪除/添加字段會發生什麼情況? – TheSoftwareJedi 2009-08-31 18:31:55
似乎在實踐中(在我有限的經驗atleat)缺少fileds只是得到他們的默認值。但是這個序列化與NMS/ActiveMQ無關。有很多關於在stackoverflow上進行序列化的問題,都圍繞着這些問題。 – nos 2009-08-31 19:32:28