C#のMongoRepositoryと継承を組み合わせると、シリアライゼーションエラーが発生します。MongoRepository継承シリアライゼーションエラー
本当に奇妙なことは、短時間で動作しますが、再構築や何かが失敗した後です。コレクションを削除して新しいコレクションを作成すると、コレクションが停止または再構築されるまで機能します。私はそれが好きで取得しようとすると
public class Organization
{
// other attributes removed for demonstration simplicity
public List<Person> People { get;set; }
}
public abstract class Person
{
public string Id {get;set;}
public string Name {get;set;}
}
public class Employee : Person
{
public string Badge {get;set;}
}
public class Contractor : Person
{
public string Company {get;set;}
}
:
私のコードは次のようになり
static MongoRepository<Organization> apps = new MongoRepository<Organization>();
return apps.Single(c => c.Id == id);
私が受け取るエラーは、次のとおりです。
タイプ「システムの例外。 IO.FileFormatException 'はMongoDB.Driver.dllで発生しましたが、ユーザーコードで処理されませんでした
追加情報:API.Models.OrganizationクラスのPeopleプロパティを逆シリアル化する際にエラーが発生しました。抽象クラスのインスタンスを作成できません。
ポリモーフィッククラスの操作とセリライジング/デシリアライズの詳細は、http://docs.mongodb.org/ecosystem/tutorial/serialize-documents-with-the-csharp-driver/#polymorphic-classes-andにあります。 - 識別器 –