C# 응용 프로그램에서 Windows Message Queue를 통해 레거시 응용 프로그램과 통신해야합니다.System.Messaging.MessageQueue가 XML로 문자열을 래핑하지 않게하려면 어떻게해야합니까?
레거시 응용 프로그램은 특정 개인 큐의 일반 문자열 메시지를 예상하지만 System.Messaging.MessageQueue가 XML로 메시지를 래핑하지 못하게합니다!
내가 테스트 해요 코드는 매우 간단합니다 :
MessageQueue myQueue = new MessageQueue(@".\Private$\tolegacy");
Message msg = new Message("My Test String");
myQueue.Send(msg);
문제는 메시지가있는 XML 직렬화와 같은 큐에 나타납니다 있다는 것입니다 : 할 수 없습니다
<?xml version="1.0"?><string>My Test String</string>
레거시 응용 프로그램의 동작을 수정하여 System.Messaging.MessageQueue가 내 메시지를 XML로 포맷하는 것을 막아야합니다.
아무도 도와 줄 수 있습니까?
직접 BodyStream에 쓰기가 작동했습니다. 그것은 가장 쉬운 변화처럼 보였습니다. 그래서 처음에 시도해 보았습니다. – Damovisa
나는 여러 필자를 작성했으며 그들은 정말 잘 작동합니다. 걱정할 필요가있는 것은 발신자와 수신자가 신체 유형을 이해하는 것입니다. –
비슷한 문제가 있습니다. 우리는 큐를 읽고 쓸 수 있고 메시지를 다시 얻을 수 있습니다. 그러나 벤더가 대기열을 읽을 때 그는 우리 메시지를 감싸는 여분의 "물건"을 보게됩니다. 랩핑 (wrapping)이 전혀없는 간단한 문자열을 작성하는 방법은 무엇입니까? BinaryFormatter조차도 문자열의 시작 부분에 일련의 바이트를 추가했습니다. – NealWalters