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);
シリアル化プロセスを管理するために属性と規則のみを使用しています。
この助けを願っています。