Estoy probando una serie de escenarios con MongoDb para ver cómo recuperarme de posibles problemas de datos.Campo de deserialización cuando se cambia el tipo con el controlador mongoDb csharp
Tengo clases (Direcciones con colección de Dirección) con una propiedad de código postal en Dirección que originalmente se emitió como cadena. Guardé múltiples registros de direcciones y pude recuperarlos todos bien. como este, var allAddresses = addresses.FindAllAs();
Cambié la propiedad del código postal a int y guardé algunos registros. Luego cambié la propiedad del código postal a cadena.
Cuando intento volver a leer la colección, aparece un error que se deserializa, como era de esperar. var allAddresses = addresses.FindAllAs();
Mi objetivo es poder anular la deserialización, de modo que si ocurre un error de deserialización de campo, puedo elegir ignorarlo o aplicar un valor predeterminado.
He intentado un serializador personalizado, que no funciona. Cualquier sugerencia sera apreciada.
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();
}
}
si una respuesta resuelve su problema, usted debe aceptar la respuesta. La verificación junto a la upvote/downvote –