Nemusíte psát BsonClassMap.RegisterClassMap<MyClass>();
, protože všechny třídy budou ve výchozím nastavení automaticky mapovány.
Měli byste použít RegisterClassMap
když potřebujete vlastní serializaci:
BsonClassMap.RegisterClassMap<MyClass>(cm => {
cm.AutoMap();
cm.SetIdMember(cm.GetMemberMap(c => c.SomeProperty));
});
Také můžete použít atributy k vytvoření správy serializace (pro mě to vypadá jako nativní):
[BsonId] // mark property as _id
[BsonElement("SomeAnotherName", Order = 1)] //set property name , order
[BsonIgnoreExtraElements] // ignore extra elements during deserialization
[BsonIgnore] // ignore property on insert
Můžete také vytvořit globální pravidla, která se používají během automatického mapování, jako je toto:
var myConventions = new ConventionProfile();
myConventions.SetIdMemberConvention(new NoDefaultPropertyIdConvention());
BsonClassMap.RegisterConventions(myConventions, t => true);
Ke správě procesu serializace používám pouze atributy a konvence.
Doufám, že to pomůže.