Non è necessario scrivere BsonClassMap.RegisterClassMap<MyClass>();
, perché tutte le classi verranno mappate automaticamente per impostazione predefinita.
Dovresti usare RegisterClassMap
quando hai bisogno di una serializzazione personalizzata:
BsonClassMap.RegisterClassMap<MyClass>(cm => {
cm.AutoMap();
cm.SetIdMember(cm.GetMemberMap(c => c.SomeProperty));
});
Inoltre puoi utilizzare gli attributi per creare gestire la serializzazione (sembra più nativo per me):
[BsonId] // mark property as _id
[BsonElement("SomeAnotherName", Order = 1)] //set property name , order
[BsonIgnoreExtraElements] // ignore extra elements during deserialization
[BsonIgnore] // ignore property on insert
Inoltre puoi creare regole globali da utilizzare durante la mappatura automatica, come questa:
var myConventions = new ConventionProfile();
myConventions.SetIdMemberConvention(new NoDefaultPropertyIdConvention());
BsonClassMap.RegisterConventions(myConventions, t => true);
Sto usando solo attributi e convenzioni per gestire il processo di serializzazione.
Spero che questo aiuti.