ctv*_*ctv 10 c# json node.js azure-worker-roles deserialization
这是我的情景:
我正在使用节点azure sdk从Node.js发送Azure ServiceBus队列消息,如下所示:
var message = {
body: JSON.stringify({ foo: 'Bar' })
};
serviceBusService.sendQueueMessage('myQueue', message, function (error) {
if (!error) {
console.log('msessage sent');
}
});
Run Code Online (Sandbox Code Playgroud)
我有一个正在侦听队列的ac #work角色:
QueueClient Client = QueueClient.CreateFromConnectionString(connStr, QueueName);
Client.OnMessage((receivedMessage) =>
{
var body = receivedMessage.GetBody<string>();
});
Run Code Online (Sandbox Code Playgroud)
当该GetBody
方法执行时,我收到以下错误:
反序列化System.String类型的对象时出错.输入源格式不正确
ctv*_*ctv 17
经过一番挖掘后,我发现这篇文章帮助我找到了解决方案:
Client.OnMessage((receivedMessage) =>
{
var bodyJson = new StreamReader(receivedMessage.GetBody<Stream>(), Encoding.UTF8).ReadToEnd();
var myMessage = JsonConvert.DeserializeObject<MyMessage>(bodyJson);
});
Run Code Online (Sandbox Code Playgroud)
如果有人遇到这个问题并找到了更好的解决方案,请告诉我!
谢谢!