No necesita escribir BsonClassMap.RegisterClassMap<MyClass>();
, porque todas las clases se asignarán automáticamente de forma predeterminada.
Debe usar RegisterClassMap
cuando necesite una serialización personalizada:
BsonClassMap.RegisterClassMap<MyClass>(cm => {
cm.AutoMap();
cm.SetIdMember(cm.GetMemberMap(c => c.SomeProperty));
});
También puede usar atributos para crear serialización administrada (parece más nativo para mí):
[BsonId] // mark property as _id
[BsonElement("SomeAnotherName", Order = 1)] //set property name , order
[BsonIgnoreExtraElements] // ignore extra elements during deserialization
[BsonIgnore] // ignore property on insert
También puede crear reglas globales que se usan durante el mapeo automático, como esta:
var myConventions = new ConventionProfile();
myConventions.SetIdMemberConvention(new NoDefaultPropertyIdConvention());
BsonClassMap.RegisterConventions(myConventions, t => true);
Estoy usando solo atributos y convenciones para administrar el proceso de serialización.
Espero que esta ayuda.