Преобразование словаря <string, object> в BsonDocument без поля _t

я используюToBsonDocument метод расширения изMongoDB.Bson преобразовать этот словарь:

        var dictionary = new Dictionary<string, object> {{"person", new Dictionary<string, object> {{"name", "John"}}}};
        var document = dictionary.ToBsonDocument();

И вот итоговый документ:

  { "person" : 
      { "_t" : "System.Collections.Generic.Dictionary`2[System.String,System.Object]", 
        "_v" : { "name" : "John" } } }

Есть ли способ избавиться от этих вещей _t / _v? Я хотел бы, чтобы полученный документ выглядел так:

  { "person" : { "name" : "John" } }

UPD: я нашел код в DictionaryGenericSerializer:

if (nominalType == typeof(object))
{
    var actualType = value.GetType();
    bsonWriter.WriteStartDocument();
    bsonWriter.WriteString("_t", TypeNameDiscriminator.GetDiscriminator(actualType));
    bsonWriter.WriteName("_v");
    Serialize(bsonWriter, actualType, value, options); // recursive call replacing nominalType with actualType
    bsonWriter.WriteEndDocument();
    return;
}

Таким образом, кажется, что с этим сериализатором не слишком много опций, когда тип значенияobject.

Ответы на вопрос(4)

Ваш ответ на вопрос