1
我有一個基本的Microsoft Message Queue實現以下問題:微軟的MessageQueue格式化屬性始終是空
在閱讀方面的消息Formatter
屬性總是空,無論在發送方是我輸入。
發送代碼:
System.Messaging.Message m = new System.Messaging.Message("string to send");
m.Formatter = new XmlMessageFormatter(new Type[1] { typeof(string) });
queue.Send(m, "label");
接收代碼:
MessageEnumerator enumerator = queue.GetMessageEnumerator2();
while (enumerator.MoveNext())
{
Message m = enumerator.RemoveCurrent();
Console.WriteLine("MSQ: " + m.Label);
Console.WriteLine("Formatter: " + m.Formatter.GetType().ToString()); // crash because formatter property is null
Console.WriteLine("Body: " + m.Body); //also crashes since formatter is null
}
由於Formatter
爲null,我也不能得到這正是我最需要的。
可是......消息「反序列化」使用** **的MessageQueue Formatter屬性,不是嗎?如果是這樣,你是否已經在接收代碼中初始化了MessageQueue.Formatter屬性(** queue **。Formatter)? –
@JuanMellado:不,我沒有。實際上我認爲這是自動完成的,因爲在文檔中它說它默認爲XmlMessageFormatter – clamp
是的,但你仍然可以執行'((XmlMessageFormatter)queue.Formatter).TargetTypes = new Type [1] {typeof(string)}; [未經測試] –