我有序列化來自Windows Azure ServiceBus消息的問題。Message.GetBody();序列化循環
當我調用「message.GetBody();」方法結束在某種循環,這使得我的天青模擬器分配機器上可用的所有內存。
我的代碼:
Microsoft.ServiceBus.Messaging.BrokeredMessage message;
while (true)
{
// SB is an instance of a class which let me receive a BrokeredMessage through its ReceiveMessage method.
message = SB.ReceiveMessage("orders");
if (message == null)
{
break;
}
// This ends up allocating lots of memory until the debugger crashes.
Procurement.TestOrder torder = message.GetBody<Procurement.TestOrder>();
}
的使用類別:
[MessageContract(IsWrapped=false)]
public class TestOrder
{
[MessageBodyMember]
public int companyId { get; set; }
}
我一直在使用的TestOrder級的[DataContract]和[DataMember]標註屬性也試過。
順便說一句,該消息是一個非常簡單的XML文件,沒有任何命名空間從BizTalk進入Azure隊列。
這可能會有一些小缺陷,但我沒有看到序列化程序陷入循環的任何原因。
在此先感謝!
當事情變得「在一個循環中卡住」它通常是從recorive呼籲例如,如果你不正確地訪問屬性成員..但從這個代碼,你有..很難告訴發生了什麼事.. – MethodMan 2012-01-03 15:14:40
是啊,我也這麼認爲! 但是這段代碼很簡單。 即時只是試圖序列化一個單一的元素,並確保該元素存在於XML中,它只包含數字1004. – DOOMDUDEMX 2012-01-03 15:26:27