Bạn không cần ghi BsonClassMap.RegisterClassMap<MyClass>();
, bởi vì tất cả các lớp sẽ được tự động hóa theo mặc định.
Bạn nên sử dụng RegisterClassMap
khi bạn cần tuần tự hóa tùy chỉnh:
BsonClassMap.RegisterClassMap<MyClass>(cm => {
cm.AutoMap();
cm.SetIdMember(cm.GetMemberMap(c => c.SomeProperty));
});
Ngoài ra, bạn có thể sử dụng các thuộc tính để tạo tuần tự hóa quản lý (đối với tôi thì có vẻ giống bản địa hơn):
[BsonId] // mark property as _id
[BsonElement("SomeAnotherName", Order = 1)] //set property name , order
[BsonIgnoreExtraElements] // ignore extra elements during deserialization
[BsonIgnore] // ignore property on insert
Ngoài ra, bạn có thể tạo các quy tắc chung được sử dụng trong quá trình tự động hóa, như quy tắc sau:
var myConventions = new ConventionProfile();
myConventions.SetIdMemberConvention(new NoDefaultPropertyIdConvention());
BsonClassMap.RegisterConventions(myConventions, t => true);
Tôi chỉ đang sử dụng các thuộc tính và quy ước để quản lý quá trình tuần tự hóa.
Hy vọng sự giúp đỡ này.