Windows Azure ServiceBus からのメッセージのシリアル化に問題があります。
「message.GetBody();」を呼び出すと メソッドは、私のazure-emulatorがマシンで利用可能なすべてのメモリを割り当てさせるある種のループに陥ります。
私のコード:
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 のキューに入る名前空間はありません。
これにはいくつかの小さな欠陥があるかもしれませんが、シリアライザーがループに陥る理由はわかりません。
前もって感謝します!