11 votes

Sérialisation et héritage XML .NET

J'ai une structure comme ça :

public interface A
{
    public void method();
}

public class B : A
{
}

public class C : A
{
}

List<A> list;

La liste contient des objets de type B et C ; ils ont également certains champs que je voudrais conserver. Puis-je maintenant la sérialiser, la désérialiser et obtenir les instances d'objets appropriées ? De préférence en XML

EDITAR:

Existe-t-il un moyen simple de sérialiser cette liste qui contient des interfaces, puis de la désérialiser en instances B et C ?

0voto

andrey.tsykunov Points 1266

XmlSerializer ne fonctionne pas avec les interfaces. Donc vous pouvez :

Convertir l'interface en classe abstraite, puis utiliser XmlIncludeAttribute pour elle ou fournir des KnownTypes à XmlSerializer

o

Mettre en œuvre IXmlSerializable pour le type parent

o

Envisagez d'utiliser DataContractSerializer à partir de .NET 3.0

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X