Ho bisogno di comunicare con un'applicazione legacy dalla mia app C# tramite la Coda messaggi di Windows.Come posso interrompere il mio System.Messaging.MessageQueue dal wrapping delle stringhe in XML?
L'applicazione legacy prevede i messaggi di stringa normale in una particolare coda privata, ma non riesco a fermare System.Messaging.MessageQueue dal wrapping del mio messaggio in XML!
Il codice Sono test è molto semplice:
MessageQueue myQueue = new MessageQueue(@".\Private$\tolegacy");
Message msg = new Message("My Test String");
myQueue.Send(msg);
Il guaio è che il messaggio viene serializzato XML e appare in coda come:
<?xml version="1.0"?><string>My Test String</string>
non posso modificare il comportamento dell'applicazione legacy, quindi ho bisogno di interrompere System.Messaging.MessageQueue dalla formattazione del mio messaggio come XML.
Qualcuno può aiutare?
Scrivere direttamente su BodyStream ha funzionato, grazie. Sembrava il cambiamento più semplice, quindi l'ho provato prima :) – Damovisa
Ne ho scritti diversi io e funzionano davvero bene. L'unica cosa di cui devi preoccuparti è il mittente e il ricevitore che capiscono il tipo di corpo. –
Stiamo riscontrando un problema simile. Siamo in grado di leggere/scrivere in coda e recuperare il messaggio. Ma quando il venditore legge la coda, vede la "roba" in più avvolta attorno al nostro messaggio. Come possiamo semplicemente scrivere una semplice stringa senza alcun involucro? Anche BinaryFormatter ha aggiunto un mucchio di byte all'inizio della stringa. – NealWalters