Ich habe das Problem mit meinem XML-Serialisierungsproblem. Ich habe an meinem Projekt gearbeitet, um ein Objekt mit einem Interface als Attribut zu (de) serialisieren. Ich weiß, dass Sie eine Schnittstelle nicht serialisieren können, und das ist, was mein Fehler mir sagt. HierSerialisieren Sie ein Objekt mit einer Schnittstelle
ist ein Beispiel für das Objekt, das ich in einer Datei gespeichert werden soll:
public class Task
{
public int id;
public string name;
public TypeEntree typeEntree;
public int idRequired;
public string code;
public int waitTime;
public string nameApp;
// ... Constructors (empty and non-empty) and methods ...
}
TypeEntree ist eine leere Schnittstelle, ist es nur verschiedene Objekte beziehen und nutzen sie leicht um meine Anwendung. Zum Beispiel sind hier zwei der Objekte, die diese Schnittstelle verwendet:
[Serializable]
public class Mouse : TypeEntree
{
public Point point;
public IntPtr gaucheOuDroite;
public string image;
// ... Constructors (empty and non-empty) and methods ...
}
[Serializable]
public class Sequence : TypeEntree
{
public List<Tuple<string, Point, long, IntPtr>> actions;
// ... Constructors (empty and non-empty) and methods ...
}
Die Schnittstelle TypeEntree hat auch das Attribut [Serializable] und auch die [XmlInclude (typeof (Mouse)] für jede meiner Klassen, die diese verwendet . Schnittstelle
Hier meine Frage: Warum, wenn ich zu serialisiert versuchen, es nicht die Art meines Objekt (typeEntree im Task) erfasst, kann, da ich die [XmlInclude (typeof (Mouse)] hinzugefügt Attribute
?Auch, wie soll ich dieses Problem beheben?
Hinzu kommt noch, hier sind die Methoden der Serialisierung/Deserialisierung fand ich, dass scheint funktioniert sehr gut ohne Schnittstelle: https://stackoverflow.com/a/22417240/6303528
welchen Serializer verwenden Sie? – rene
Im letzten Satz gebe ich es an. http://Stackoverflow.com/a/22417240/6303528 - XML XmlSerializer –
Der Serializer fügt die Attribute nicht zum Serialisieren hinzu, sondern zum Deinserialisieren. Die Netzbibliothek benötigt die Attribute beim Deserialisieren, um zwischen den vererbten Klassen zu unterscheiden. – jdweng