Vous n'avez pas besoin d'écrire BsonClassMap.RegisterClassMap<MyClass>();
, car toutes les classes seront mappées automatiquement par défaut.
Vous devez utiliser RegisterClassMap
lorsque vous avez besoin d'une sérialisation personnalisée :
BsonClassMap.RegisterClassMap<MyClass>(cm => {
cm.AutoMap();
cm.SetIdMember(cm.GetMemberMap(c => c.SomeProperty));
});
Vous pouvez également utiliser des attributs pour créer la gestion de la sérialisation (cela me semble plus natif) :
[BsonId] // mark property as _id
[BsonElement("SomeAnotherName", Order = 1)] //set property name , order
[BsonIgnoreExtraElements] // ignore extra elements during deserialization
[BsonIgnore] // ignore property on insert
Vous pouvez également créer des règles globales utilisées lors du mappage automatique, comme celle-ci :
var myConventions = new ConventionProfile();
myConventions.SetIdMemberConvention(new NoDefaultPropertyIdConvention());
BsonClassMap.RegisterConventions(myConventions, t => true);
J'utilise uniquement des attributs et des conventions pour gérer le processus de sérialisation.
J'espère que cette aide.