Du behöver inte skriva BsonClassMap.RegisterClassMap<MyClass>();
, eftersom alla klasser kommer att automatiskt mappas som standard.
Du bör använda RegisterClassMap
när du behöver anpassad serialisering:
BsonClassMap.RegisterClassMap<MyClass>(cm => {
cm.AutoMap();
cm.SetIdMember(cm.GetMemberMap(c => c.SomeProperty));
});
Du kan också använda attribut för att skapa hantera serialisering (det ser ut som mer inbyggt för 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 också skapa globala regler som används under automapping, som den här:
var myConventions = new ConventionProfile();
myConventions.SetIdMemberConvention(new NoDefaultPropertyIdConvention());
BsonClassMap.RegisterConventions(myConventions, t => true);
Jag använder endast attribut och konventioner för att hantera serialiseringsprocessen.
Hoppas detta hjälper.