2015-01-09 52 views
0

我嘗試獲取MSMQ隊列中項目的內容。從MSMQ獲取正文內容

當我看到該條目使用QueueExplorer主體內容就像是

[{"$type":"MyProject.MyClass.MyMethod, Messages","CustomerDecision":0,"OrderReferenceoId":"4fdb6be2-bfde-42b0-93fd-47058a326a24"}] 

當我嘗試使用下面的代碼閱讀的內容,體內只包含奇怪的廢話,多爲\ 0 \ 0等。 :

message.Formatter = new XmlMessageFormatter(); 
var reader = new StreamReader(message.BodyStream); 
var msgBody = reader.ReadToEnd(); 

(消息是類型System.Messaging.Message的)

+0

爲什麼你使用XmlMessageFormatter序列化爲Json的內容?就像你必須序列化一個對象來讓它在主體中出現這樣的一樣,你需要在退出隊列的時候反序列化它。 –

+0

我不知道該內容是如何序列化的。我只想收到純文本。 QueueExplorer無法知道該格式。 (我也嘗試了BinaryMessageFormatter,結果相同) –

回答

1

這是一個問題編碼。結果看起來像隨機垃圾,但只是一個Unicode字符集。下面解決了這個問題:

message.Formatter = new BinaryMessageFormatter(); 
var reader = new StreamReader(message.BodyStream, Encoding.Unicode); 
var msgBody = reader.ReadToEnd();