Sie brauchen nicht BsonClassMap.RegisterClassMap<MyClass>();
zu schreiben , da alle Klassen standardmäßig automatisch zugeordnet werden.
Sie sollten RegisterClassMap
verwenden wenn Sie eine benutzerdefinierte Serialisierung benötigen:
BsonClassMap.RegisterClassMap<MyClass>(cm => {
cm.AutoMap();
cm.SetIdMember(cm.GetMemberMap(c => c.SomeProperty));
});
Sie können auch Attribute verwenden, um die Serialisierung zu verwalten (es sieht für mich nativer aus):
[BsonId] // mark property as _id
[BsonElement("SomeAnotherName", Order = 1)] //set property name , order
[BsonIgnoreExtraElements] // ignore extra elements during deserialization
[BsonIgnore] // ignore property on insert
Sie können auch globale Regeln erstellen, die während der automatischen Zuordnung verwendet werden, wie diese hier:
var myConventions = new ConventionProfile();
myConventions.SetIdMemberConvention(new NoDefaultPropertyIdConvention());
BsonClassMap.RegisterConventions(myConventions, t => true);
Ich verwende nur Attribute und Konventionen, um den Serialisierungsprozess zu verwalten.
Hoffe, das hilft.