Du behøver ikke skrive BsonClassMap.RegisterClassMap<MyClass>();
, fordi alle klasser vil blive automappet som standard.
Du skal bruge RegisterClassMap
når du har brug for tilpasset serialisering:
BsonClassMap.RegisterClassMap<MyClass>(cm => {
cm.AutoMap();
cm.SetIdMember(cm.GetMemberMap(c => c.SomeProperty));
});
Du kan også bruge attributter til at oprette administrere serialisering (det ser ud til at være mere indbygget for mig):
[BsonId] // mark property as _id
[BsonElement("SomeAnotherName", Order = 1)] //set property name , order
[BsonIgnoreExtraElements] // ignore extra elements during deserialization
[BsonIgnore] // ignore property on insert
Du kan også oprette globale regler, der bruges under automapping, som denne:
var myConventions = new ConventionProfile();
myConventions.SetIdMemberConvention(new NoDefaultPropertyIdConvention());
BsonClassMap.RegisterConventions(myConventions, t => true);
Jeg bruger kun attributter og konventioner til at styre serialiseringsprocessen.
Håber dette hjælper.