2010-02-02 6 views
9

Ich habe eine WCF-Nachricht (Channels.Message), die ich versuche, den Body mit .GetBody() zu extrahieren. Allerdings merke ich, dass ich es nur einmal tun kann, und wenn ich versuche, "GetBody <>" wieder zu verwenden, bekomme ich: "Diese Nachricht kann die Operation nicht unterstützen, weil sie gelesen wurde."WCF-Nachrichtentext zweimal lesen - "Nachricht kann nicht gelesen werden"

Eine Idee, wie kann ich den Nachrichtentext erneut lesen?

dank

Antwort

13

Hier ist ein ziemlich guter Artikel über das, was Sie versuchen, auf MSDN zu tun. Weitere Informationen finden Sie im Abschnitt Kopieren einer Nachricht in einen Puffer. Es spricht explizit davon, dass man mehrmals auf den Nachrichtentext zugreifen muss.

http://msdn.microsoft.com/en-us/library/ms734675.aspx

+0

, das hilft nicht viel .... ich gelernt, dass man nur einmal einen Nachrichtentext lesen können, aber ich kann nicht MSFT Logik finden Sie hier ... –

+5

Insbesondere die Artikel heißt es. .. "Manchmal ist es notwendig, mehrmals auf den Nachrichtentext zuzugreifen, um zB dieselbe Nachricht an mehrere Empfänger als Teil eines Publisher-Subscriber-Systems weiterzuleiten. In diesem Fall muss die gesamte Nachricht gepuffert werden (einschließlich des Körpers) im Speicher. Sie können dies tun, indem Sie CreateBufferedCopy aufrufen. " Wenn Sie sich dann den Beispielcode in diesem Abschnitt ansehen, wird der Zugriff auf den Nachrichtentext mehrmals mithilfe von CreateBufferedCopy angezeigt –

Verwandte Themen