Я пытаюсь написать собственный десериализатор для одного из моих типов данных.Но я хотел бы использовать сериализатор по умолчанию для сериализации в базу данных.
Читая документы MongoDB, я должен реализовать SerializerBase<MyType>
, что я и сделал.По сути, я пытаюсь добиться этого:
public class MySerializer : SerializerBase<MyType>
{
public override void Serialize(BsonSerializationContext context, BsonSerializationArgs args, MyType value)
{
// Use the default serializer here, don't have to do
// anything special for this
}
public override MyType Deserialize(BsonDeserializationContext context, BsonDeserializationArgs args)
{
// Implemented my custom deserialization here. No issues here
}
}
Если я не переопределю метод Serialize
, я получу исключение, что MyType
не может быть сериализовано MySerializer
, поэтому нетвариант, но переопределить.
Я понимаю, что могу просто преобразовать value
в сериализованную строку, а затем просто вызвать context.Writer.WriteString(jsonstring)
, но я не уверен, является ли это рекомендуемым подходом или существует либолее производительный вариант.Вот почему я хотел бы просто использовать то, что MongoDB по умолчанию делает для сериализации.