일부 저장소에 WCF 메시지를 저장하고 나중에 다시 읽으려면 해당 메시지를 읽으 려합니다.WCF 메시지 저장 및 재생
첨부 일부 코드 부품 :
private void WriteMessage(Message message, string path)
{
FileStream fileStream = new FileStream(path, FileMode.Create);
using (XmlDictionaryWriter writer = XmlDictionaryWriter.CreateBinaryWriter(fileStream))
{
using (XmlDictionaryReader reader = message.GetReaderAtBodyContents())
{
message.WriteBodyContents(writer);
writer.Flush();
}
}
}
private Message ReadMessage(string path)
{
using (FileStream fs = File.OpenRead(path))
{
using (XmlDictionaryReader reader = XmlDictionaryReader.CreateBinaryReader(fs, XmlDictionaryReaderQuotas.Max))
{
fs.Flush();
Message message = Message.CreateMessage(reader, int.MaxValue, messageVersion);
return message.CreateBufferedCopy(int.MaxValue).CreateMessage();
}
}
}
문제가있어 좋아한다으로 메시지를 저장하기 전에 Message.ToString는(), 전체 메시지를 메시지 문자열을 반환하지만, 그것을 읽은 후, 있으며, toString()는 시체를 "... 스트림 ..."으로 표시하고 그게 전부입니다.
가 있습니다 :-)
많은 감사를 advaice하십시오 메시지를 다른 메시지에 싸여로 "WriteMessage"에서 본체 만 읽고 기록됩니다.
BinaryReader/Writer 대신 CreateTextReader/Writer를 사용할 때 메시지를 잘 읽고 쓸 수 있습니다. (나는 BinaryWriter를 사용하여 어떻게 쓰는지 볼 수 없다.) – Tamir