sql >> Base de Datos >  >> NoSQL >> MongoDB

C# 10gen y mongo:deserialización de miembros como interfaces

El problema con las colecciones personalizadas en 1.4.2 y versiones anteriores es que, dado que no hay un serializador registrado para su colección personalizada, el controlador C# intenta serializarlo mediante BsonClassMapSerializer. Pero el BsonClassMapSerializer requiere que la clase que se serializa exponga todos los datos que se serializarán como propiedades públicas de obtención/establecimiento (que su clase base List no hace).

Lo único que cambia en 1.5 es cómo el controlador elige qué serializador usar cuando POCO implementa IEnumerable o IDictionary.

Puede usar colecciones personalizadas ya en 1.4.2 y versiones anteriores registrando explícitamente un serializador para su colección personalizada como esta:

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