MQMessage queueMessage = new MQMessage();
queueMessage.WriteString(strInputMsg);
queueMessage.Format = MQC.MQFMT_STRING;
MQPutMessageOptions queuePutMessageOptions = new MQPutMessageOptions();
Queue.Put(queueMessage, queuePutMessageOptions);
Uso de C#, con el código anterior, cuando entrada el mensaje en la cola, la longitud de datos del mensaje es 3600.Poner Mensaje en Websphere MQ a través de C# tiene diferentes longitud de datos que poner manualmente el mismo mensaje
Cuando introducir manualmente el mensaje en la cola haciendo clic derecho en la cola y seleccionando la opción mensaje de prueba Ponga, la longitud de los datos del mensaje es 1799.
estoy muy confundido por qué este es el caso. El mensaje en ambos casos es una cadena xml con declaración. En Notepad ++, hay 1811 caracteres, incluida la declaración. Cuando veo el mensaje en el depurador antes de ingresar en la cola, el mensaje se convierte en xml sin ninguna línea o carruajes de devolución.
creé la cadena XML usando:
//converts string message into xml by serializing it
public string GetMessage(MyMessage messageInstance)
{
// Serialize the request
XmlSerializer xsr = new XmlSerializer(typeof(MyMessage));
MemoryStream memoryStream = new MemoryStream();
XmlTextWriter xmlTextWriter = new XmlTextWriter(memoryStream, Encoding.UTF8);
xsr.Serialize(xmlTextWriter, messageInstance);
memoryStream = (MemoryStream)xmlTextWriter.BaseStream;
string XmlizedString = new UTF8Encoding().GetString((memoryStream.ToArray());
// Encode the xml
Encoding utf = Encoding.UTF8;
byte[] utfBytes = utf.GetBytes(XmlizedString);
// Load the document (XmlResolver is set to null to ingore DTD)
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.XmlResolver = null;
xmlDoc.LoadXml(utf.GetString(utfBytes));
return utf.GetString(utfBytes);
Me estoy perdiendo algo en mi C# aplicación que agrega caracteres adicionales?
Gracias.
UTF8 vs ASCII? – Matten