我有序列化来自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