मैं आधिकारिक मोंगो सी # चालक और रेस्टशर्प का उपयोग कर रहा हूं ताकि मेरे सीरियलाइजेशन/deserialization करने के लिए Json.NET के साथ एक रेस्ट एपी को कॉल किया जा सके।Json.NET Deserializing Mongo ObjectId गलत परिणाम दे रहा है
public class Person
{
[JsonProperty("_id"),JsonConverter(typeof(ObjectIdConverter))]
public ObjectId Id {get;set;}
public string Name {get;set;}
}
मैं एक नया व्यक्ति वस्तु बनाने:
var person = new Person{Id = ObjectId.GenerateId(),Name='Joe Bloggs'};
पोस्ट यह, और सर्वर पर मैं देख रहा हूँ मैं एक व्यक्ति वर्ग, के रूप में इस प्रकार है जो मैं & प्राप्त पोस्ट करना चाहते हैं कहो जिसके बाद सही है:
{ _id: 52498b56904ee108c99fbe88, name: 'Joe Bloggs'}
समस्या यह है, जब मैं प्रदर्शन एक GET ObjectId मैं ग्राहक पर मिलता है {0000000000000 ...} यानी नहीं {5249 .....} मैं था अनुभव सीटी। कच्चे प्रतिक्रिया सही मान दिखाया जा रहा है, लेकिन मैं इसे ढीला एक बार मैं deserialize।
ObjectIdConverter कोड है:
public class ObjectIdConverter : JsonConverter
{
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
serializer.Serialize(writer, value.ToString());
}
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
var objectId = (ObjectId)existingValue; // at this point existingValue is {000...}
return objectId;
}
public override bool CanConvert(Type objectType)
{
return (objectType == typeof (ObjectId));
}
}
किसी भी मदद की सराहना की जाएगी।
Ahhhh समझ में आता है !!! धन्यवाद ब्रायन, अच्छा जवाब! –