Deserialización del campo cuando se cambia el tipo usando el controlador csharp de MongoDb

Estoy probando varios escenarios con MongoDb para ver cómo recuperarme de posibles problemas de datos.

Tengo clases (direcciones con colección de direcciones) con una propiedad de código postal en la dirección que originalmente se emitió como cadena. Guardé varios registros de direcciones y pude recuperarlos todos bien. así, var allAddresses = address.FindAllAs ();

Cambié la propiedad del código postal a int y guardé algunos registros. Entonces cambié la propiedad del código postal de nuevo a la cadena.

Cuando intento volver a leer la colección, aparece un error de deserialización, como se esperaba. var allAddresses = address.FindAllAs ();

Mi objetivo es poder anular la deserialización, por lo que si se produce un error de deserialización en el campo, puedo elegir ignorarlo o aplicar un valor predeterminado.

He intentado un serializador personalizado, que no funciona. Cualquier sugerencia sera apreciada.

<code>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();
    }
  }
</code>

Respuestas a la pregunta(1)

Su respuesta a la pregunta