निम्न स्निपेट रिकॉर्ड को क्रमबद्ध करने के लिए प्रतीत होता है, लेकिन deserialization फ़ील्ड को उनके डिफ़ॉल्ट मानों पर सेट करता है।MongoDB BsonSerializer.Deserialize और F #
open MongoDB.Bson
open MongoDB.Bson.Serialization
open System
module BsonIssue =
type MyData =
{
Id : ObjectId
Time : DateTime
}
let serialize(data : MyData) =
let doc = BsonDocument()
BsonSerializer.Serialize<MyData>(new IO.BsonDocumentWriter(doc), data)
doc
let deserialize(doc : BsonDocument) =
printfn "Attempting to deserialize %A" doc
BsonSerializer.Deserialize<MyData>(doc)
let data = { Id = ObjectId.GenerateNewId(); Time = DateTime.Now }
printfn "The data: %A" data
let serialized = serialize data
printfn "After serialization: %A" serialized
let deserialized = deserialize serialized
printfn "After deserialization: %A" deserialized
यहाँ उत्पादन का एक उदाहरण है:
डेटा:
{Id = 55de887754893731fceeef58;
Time = 8/26/2015 11:48:07 PM;}
After serialization: seq [_t=MyData; _id=55de887754893731fceeef58; Time=2015-08-27T03:48:07.836Z]
Attempting to deserialize seq [_t=MyData; _id=55de887754893731fceeef58; Time=2015-08-27T03:48:07.836Z]
After deserialization: {Id = 000000000000000000000000;
Time = 1/1/0001 12:00:00 AM;}
अग्रिम धन्यवाद।
धन्यवाद बहुत बहुत। मजेदार क्योंकि मैंने एक उदाहरण बनाने के लिए डेटटाइम का उपयोग करना चुना है। उस पर अच्छी पकड़ भी। –