Вам не нужно писать BsonClassMap.RegisterClassMap<MyClass>();
, потому что все классы будут автоматически по умолчанию.
Вы должны использовать RegisterClassMap
, когда вам нужна пользовательская сериализация:
BsonClassMap.RegisterClassMap<MyClass>(cm => {
cm.AutoMap();
cm.SetIdMember(cm.GetMemberMap(c => c.SomeProperty));
});
Такжевы можете использовать атрибуты для создания управления сериализацией (для меня это выглядит более естественным):
[BsonId] // mark property as _id
[BsonElement("SomeAnotherName", Order = 1)] //set property name , order
[BsonIgnoreExtraElements] // ignore extra elements during deserialization
[BsonIgnore] // ignore property on insert
Также вы можете создавать глобальные правила, которые используются во время автоподстановки, например:
var myConventions = new ConventionProfile();
myConventions.SetIdMemberConvention(new NoDefaultPropertyIdConvention());
BsonClassMap.RegisterConventions(myConventions, t => true);
Я использую только атрибуты и соглашения для управления процессом сериализации.
Надеюсь, эта помощь.