2015-02-20 9 views
9

यहाँ मेरी परिदृश्य हैके दौरान त्रुटि Node.js (नीला SDK) से भेजे गए Azure ServiceBus कतार संदेश deserializing

QueueClient Client = QueueClient.CreateFromConnectionString(connStr, QueueName); 

Client.OnMessage((receivedMessage) => 
{ 
    var body = receivedMessage.GetBody<string>(); 
}); 

जब GetBody विधि मार डाला जाता है, मैं निम्नलिखित त्रुटि मिलती है:

var message = { 
    body: JSON.stringify({ foo: 'Bar' }) 
}; 

serviceBusService.sendQueueMessage('myQueue', message, function (error) { 
    if (!error) { 
     console.log('msessage sent'); 
    } 
}); 

मैं एसी # कार्यकर्ता भूमिका है कि कतार में सुन रहा है है

There was an error deserializing the object of type System.String. The input source is not correctly formatted

उत्तर

12

कुछ चारों ओर से खुदाई करने के बाद, मैं THIS लेख है कि मुझे एक समाधान मिल में मदद मिली:


Client.OnMessage((receivedMessage) => 
{ 
    var bodyJson = new StreamReader(receivedMessage.GetBody<Stream>(), Encoding.UTF8).ReadToEnd(); 
    var myMessage = JsonConvert.DeserializeObject<MyMessage>(bodyJson); 
}); 


किसी को भी इस मुद्दे का सामना किया और एक बेहतर समाधान के लिए, कृपया पाया गया है मुझे बताएं!

धन्यवाद!

0

अद्यतन के लिए धन्यवाद, मैं उलटा कर रहा था और इससे मेरी मदद की। मैंने सोचा कि मैं पूर्णता के लिए आपके समाधान में जोड़ दूंगा। DeserializeObject विधि को "MyMessage" कक्षा परिभाषित करने की आवश्यकता है। अपने मूल पोस्ट में, अपने JSON है:

{ foo: 'Bar' } 

अगर हम छोड़ वर्ग अपने समाधान पूरा करने की आवश्यकता अब हमारे पास json2csharp में (json2csharp.com) कि:

public class MyMessage 
{ 
    public string foo { get; set; } 
} 
बेशक

, निर्भरता Newtonsoft.Json पैकेज आपके विजुअल स्टूडियो समाधान में जोड़ा गया है:

Install-Package Newtonsoft.Json -Pre 
संबंधित मुद्दे