Je dois communiquer avec une application héritée de mon application C# via la file d'attente Windows Message.Comment arrêter mon System.Messaging.MessageQueue d'encapsuler mes chaînes en XML?
L'application héritée attend des messages de chaîne normale dans une file d'attente privée particulière, mais je n'arrive pas à empêcher le System.Messaging.MessageQueue d'encapsuler mon message en XML!
Le code que je suis le test est très simple:
MessageQueue myQueue = new MessageQueue(@".\Private$\tolegacy");
Message msg = new Message("My Test String");
myQueue.Send(msg);
Le problème est que le message est XML sérialisé et apparaît dans la file d'attente:
<?xml version="1.0"?><string>My Test String</string>
Je ne peux pas modifier le comportement de l'application héritée, donc j'ai besoin d'arrêter le System.Messaging.MessageQueue de formater mon message en XML.
Quelqu'un peut-il aider?
Écriture directement sur le BodyStream travaillé, merci. Cela ressemblait au changement le plus facile, donc je l'ai essayé en premier :) – Damovisa
J'ai écrit plusieurs moi-même et ils fonctionnent très bien. La seule chose dont vous avez à vous soucier est l'expéditeur et le receveur qui comprend le type de corps. –
Nous avons un problème similaire. Nous pouvons lire/écrire dans la file d'attente et récupérer le message correctement. Mais quand le vendeur lit la file d'attente, il voit le "truc" supplémentaire enroulé autour de notre message. Comment pouvons-nous simplement écrire une chaîne simple sans aucun emballage? Même BinaryFormatter a ajouté un tas d'octets au début de la chaîne. – NealWalters