MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

C# 10gen und Mongo:Deserialisierung für Mitglieder als Schnittstellen

Das Problem mit benutzerdefinierten Sammlungen in 1.4.2 und früher besteht darin, dass der C#-Treiber versucht, sie mit BsonClassMapSerializer zu serialisieren, da kein Serialisierungsprogramm für Ihre benutzerdefinierte Sammlung registriert ist. Der BsonClassMapSerializer erfordert jedoch, dass die zu serialisierende Klasse alle zu serialisierenden Daten als öffentliche get/set-Eigenschaften verfügbar macht (was Ihre Basisklasse List nicht tut).

Das Einzige, was sich in 1.5 ändert, ist, wie der Treiber auswählt, welcher Serializer verwendet werden soll, wenn ein POCO IEnumerable oder IDictionary implementiert.

Sie können benutzerdefinierte Sammlungen bereits in 1.4.2 und früher verwenden, indem Sie explizit einen Serialisierer für Ihre benutzerdefinierte Sammlung wie folgt registrieren:

BsonSerializer.RegisterSerializer(typeof(MyCollection), new EnumerableSerializer<int>());