MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

C# 10gen e mongo:desserialização para membros como interfaces


O problema com coleções personalizadas na versão 1.4.2 e anteriores é que, como não há serializador registrado para sua coleção personalizada, o driver C# tenta serializá-la usando o BsonClassMapSerializer. Mas o BsonClassMapSerializer requer que a classe que está sendo serializada exponha todos os dados a serem serializados como propriedades get/set públicas (o que sua classe base List não faz).

A única coisa que muda na versão 1.5 é como o driver escolhe qual serializador usar quando um POCO implementa IEnumerable ou IDictionary.

Você pode usar coleções personalizadas já em 1.4.2 e anteriores registrando explicitamente um serializador para sua coleção personalizada como este:
BsonSerializer.RegisterSerializer(typeof(MyCollection), new EnumerableSerializer<int>());