2010-02-02 106 views
9

我有一個WCF消息(Channels.Message),我試圖使用.GetBody()提取身體。然而,我注意到我只能做一次,如果我試圖再次使用「GetBody <>」,我得到:「此消息無法支持該操作,因爲它已被讀取。」讀取WCF消息正文兩次 - 「消息無法讀取」

任何想法如何重新讀取消息正文?

感謝

回答

13

這裏是關於你正在嘗試MSDN上做了相當不錯的文章。請參閱標題爲將消息複製到緩衝區中的部分。它明確地談到必須不止一次訪問消息體。

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

+0

是不會有什麼幫助.... 我瞭解到,你可以閱讀郵件正文只有一次,但我不能找到MSFT邏輯在這裏... – 2010-02-02 15:05:33

+5

具體文章說。 「 」有時候需要多次訪問消息體,例如,將同一消息轉發到作爲發佈者 - 訂閱者系統的一部分的多個目的地,在這種情況下,需要緩衝整個消息(包括正文),你可以通過調用CreateBufferedCopy來完成。「 如果您再看看本節中的示例代碼,它將顯示使用CreateBufferedCopy不止一次訪問消息正文 – 2010-02-02 15:12:50