KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I am testing a number of scenarios with MongoDb to see how to recover from possible data issues. I have classes (Addresses with collection of Address) with a zipcode property in Address which was originally cast as string. I saved out multiple records of Addresses and could retrieve them all fine. like this, var allAddresses = addresses.FindAllAs(); I changed the zip code property to int and saved some records. I then changed the zip code property back to string. When I attempt to read the collection back I get an error deserializing, as expected. var allAddresses = addresses.FindAllAs(); My goal is to be able to override the deserialization so if an field deserialization error occurs I can choose to either ignore it or apply a default value. I have tried a custom serializer, which is not working. Any suggestions would be appreciated. public class MyCustomSerializer : BsonBaseSerializer { public override object Deserialize(BsonReader bsonReader, Type nominalType, IBsonSerializationOptions options) { if (bsonReader.CurrentBsonType != BsonType.String) { return string.Empty; } return bsonReader.ReadString(); } public override void Serialize( BsonWriter bsonWriter, Type nominalType, object value, IBsonSerializationOptions options) { bsonWriter.WriteStartDocument(); bsonWriter.WriteName("ZipCode"); bsonWriter.WriteString(value.ToString()); bsonWriter.WriteEndDocument(); } }
Tags (comma-separated)
Save Edits
Cancel