Beim Versuch, die Vererbung mit MongoRepository für C# zu kombinieren, treten Serialisierungsfehler auf.MongoRepository Vererbungsserialisierungsfehler
Die wirklich seltsame Sache ist, dass es für eine kurze Zeit funktioniert, aber nach einem Umbau sagen oder etwas, das es scheitert. Wenn ich die Sammlung ablege und eine neue erzeuge, funktioniert sie bis zum Stoppen oder Neuaufbau.
Mein Code sieht so aus:
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;}
}
Wenn ich versuche, es zu bekommen:
static MongoRepository<Organization> apps = new MongoRepository<Organization>();
return apps.Single(c => c.Id == id);
Der Fehler, den ich erhalten ist:
eine Ausnahme vom Typ ‚System. IO.FileFormatException 'trat in MongoDB.Driver.dll auf, wurde jedoch nicht im Benutzercode
verarbeitetWeitere Informationen: Beim Deserialisieren der People-Eigenschaft der Klasse API.Models.Organization ist ein Fehler aufgetreten: Instanzen abstrakter Klassen können nicht erstellt werden.
Weitere Informationen zum Arbeiten mit polymorphen Klassen und zur Serilisierung/Deserialisierung finden Sie hier http://docs.mongodb.org/ecosystem/tutorial/serialize-documents-with-the-csharp-driver/#polymorphic-classes-and -Diskriminatoren –