使用Newtonsoft进行反序列化时,服务总线主题不会接收消息

时间:2017-01-18 15:04:06

标签: c# dynamic json.net servicebus

我正在尝试反序列化来自如下创建的服务总线主题的消息(.NET 4.6.1):

SubscriptionClient ServiceBusClient =
        SubscriptionClient.CreateFromConnectionString
        (ConnectionString, Topic, SubscriptionName);

然后我按如下方式创建on message方法:

 OnMessageOptions options = new OnMessageOptions();
 options.AutoComplete = false;
 options.AutoRenewTimeout = TimeSpan.FromMinutes(1);

 ServiceBusClient.OnMessage((message) =>
 {
     try
     {
         Stream stream = message.GetBody<Stream>();
         StreamReader reader = new StreamReader(stream);
         string payload = reader.ReadToEnd();
         dynamic deserialize = Newtonsoft.Json.Linq.JObject.Parse(payload);

         var avl = AvlDatum.Parser.ParseFrom(Convert.FromBase64String(deserialize.body));

         /* do other stuff here */
         message.Complete();
     }
     catch (Exception)
     {
                message.Abandon();
     }
}, options);

使用此代码但我绝对没有收到任何消息。我认为这个主题出了问题,但是如果我用动态对象注释掉这一行,就会收到很好的消息。为什么我无法在OnMessage委托中使用Newtonsoft Parser /动态对象?任何信息将不胜感激。

0 个答案:

没有答案