Dictionary<string, object> zu BsonDocument Konvertierung weglassen _t-Bereich

Ich bin mit ToBsonDocument Erweiterung Methode von MongoDB.Bson zu konvertieren, das Wörterbuch:

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

Und hier ist das resultierende Dokument:

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

Gibt es einen Weg, um loszuwerden, diese _t/_v Zeug? Ich möchte das resultierende Dokument wie folgt Aussehen:

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

UPD: ich habe der code in 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;
}

So, es scheint, dass es nicht allzu viele Möglichkeiten mit diesem serializer, wenn der Werttyp ist object.

InformationsquelleAutor vorou | 2013-11-05
Schreibe einen Kommentar