MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

C# 10gen et mongo :désérialisation des membres en tant qu'interfaces

Le problème avec les collections personnalisées dans 1.4.2 et les versions antérieures est que, puisqu'il n'y a pas de sérialiseur enregistré pour votre collection personnalisée, le pilote C# tente de la sérialiser à l'aide de BsonClassMapSerializer. Mais le BsonClassMapSerializer nécessite que la classe sérialisée expose toutes les données à sérialiser en tant que propriétés get/set publiques (ce que votre classe de base List ne fait pas).

La seule chose qui change dans la version 1.5 est la façon dont le pilote choisit le sérialiseur à utiliser lorsqu'un POCO implémente IEnumerable ou IDictionary.

Vous pouvez utiliser les collections personnalisées déjà dans la version 1.4.2 et les versions antérieures en enregistrant explicitement un sérialiseur pour votre collection personnalisée comme ceci :

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