2009-08-31 3 views

Répondre

4

La valeur par défaut est System.Runtime.Serialization.Formatters.Binary.BinaryFormatter pour IObjectMessage.

Vous pouvez définir les vôtres par ex.

IObjectMessage m = session.CreateObjectMessage(); 

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

Vous auriez besoin de définir le formatter avant d'accéder à IObjectMessage.Body sur le côté du récepteur si vous n'êtes pas l'envoi d'objets avec la valeur par défaut BinaryFormatter. Si vous le souhaitez, vous pouvez également envoyer/recevoir IByteMessage/ITextMessage et sérialiser vos objets dans les messages vous-même de la manière que vous souhaitez.

+0

Toute bonne information sur la rétrocompatibilité du format binaire? Que se passe-t-il avec un champ supprimé/ajouté? – TheSoftwareJedi

+0

Semble dans la pratique (dans mon expérience atleat limitée) les champs manquants obtiennent juste leurs valeurs par défaut. Cette sérialisation n'a cependant rien à voir avec NMS/ActiveMQ. Il y a beaucoup de questions concernant la sérialisation sur stackoverflow, poke autour de ceux-ci. – nos

Questions connexes