我在序列化来自 Windows Azure ServiceBus 的消息时遇到问题。
当我调用“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-Class 上使用 [DataContract] 和 [DataMember] 属性。
顺便说一句,消息是一个非常简单的 XML 文件,没有任何命名空间从 BizTalk 进入 azure 队列。
这可能存在一些小缺陷,但我看不出序列化程序陷入循环的任何原因。
提前致谢!