IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Sérialisation d'une liste sans "root" [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Inscrit en
    Avril 2004
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 213
    Par défaut Sérialisation d'une liste sans "root"
    Bonjour,

    Je souhaite sérialiser une collection d'objets sans pour autant avoir dans mon xml le nom de ma collection. Voici ce que j'obtients

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <splitNode xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Orientation="0" Percent="node 2">
      <Childs>
        <splitNode Orientation="0" Percent="node1">
          <Childs>
            <splitSheet idHtml="splitSheet1" Label="label" />
            <splitSheet idHtml="splitSheet2" Label="label" />
          </Childs>
        </splitNode>
      </Childs>
    </splitNode>
    voici ce que je voudrais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <splitNode xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Orientation="0" Percent="node 2">
        <splitNode Orientation="0" Percent="node1">
            <splitSheet idHtml="splitSheet1" Label="label" />
            <splitSheet idHtml="splitSheet2" Label="label" />
        </splitNode>
    </splitNode>
    D'avance merci de votre aide.

    Mes deux classes "simplifiées". J'ai juste laissé les éléments à sérialiser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    <Serializable(), XmlInclude(GetType(splitSheet))> _
    Public Class splitNode
        Inherits splitObject
        Public Enum Enum_orientation
            Vertical
            Horizontal
        End Enum
     
        Public Orientation As Short
        Public Percent As String
        <XmlArrayItem(GetType(splitNode)), _
          XmlArrayItem(GetType(splitSheet))> _
        Public Childs As List(Of splitObject)
    End Class
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <Serializable()> _
    Public Class splitSheet
        Inherits splitObject
     
        Public Label As String
        Public IdHtml As String
    End Class
    splitObject est un ancêtre commun dont les éléments sont ignorés.

  2. #2
    Membre très actif
    Inscrit en
    Avril 2004
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 213
    Par défaut
    Bon finalement j'ai trouvé. Il faut remplacer les XmlArrayItem par des XmlElement comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <Serializable(), XmlInclude(GetType(splitSheet))> _
    Public Class splitNode
        Inherits splitObject
        Public Enum Enum_orientation
            Vertical
            Horizontal
        End Enum
     
        Public Orientation As Short
        Public Percent As String
        <XmlElement(GetType(splitNode)), _
          XmlElement(GetType(splitSheet))> _
        Public Childs As List(Of splitObject)
    End Class
    Désolé. On sait jamais si ça peut servir à d'autres ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 30/06/2006, 16h46
  2. Réponses: 3
    Dernier message: 04/05/2006, 16h01
  3. Réponses: 3
    Dernier message: 24/04/2006, 19h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo