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 :

Déclaration tardive de types dans une classe sérializée en XML.


Sujet :

VB.NET

  1. #1
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2012
    Messages
    640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2012
    Messages : 640
    Points : 372
    Points
    372
    Par défaut Déclaration tardive de types dans une classe sérializée en XML.
    Bonjour a tous,
    Je me suis embarqué dans une galère en voulant essayer d’écrire une classe proprement, dans le sens ou celle-ci ne doit référencer aucune procédures ou variables du code principale. J'y suis parvenu sauf pour la partie sérialisation en XML qui me pose des problèmes.
    En effet, dans cette classe j'ai une propriété de type tableau d'Object() qui contient des paramètres dont le type est inconnu. (Pour ceux qui se pose la question de savoir pourquoi je fait cela je pourrais expliquer).
    La serializeur XML ne sait sérializer que les types que celui-ci s'attend a trouver, autrement dit ceux qui sont déclarés dans la classe sinon une exception est levée. (je pourrais serializer en binaire mais mais je préfère le XML).

    Je sais que l'on peut déclarer des types supplémentaires en plaçant cette ligne en tête de la classe mais cette déclaration est statique.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <Xml.Serialization.XmlInclude(GetType(MonObjetTypé))>
    Public Class MaClasse
    ......
     Public Property Params() As Object()
            Get
                Return _Params
            End Get
            Set(ByVal value As Object())
                _Params = value
            End Set
        End Property
    End Class
    Pensez vous que l'on puisse automatiser la déclaration des types contenus dans la variable _Params a chaque écriture du Set par exemple et comment ?

    Merci beaucoup si vous pouvez m'aider.

  2. #2
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2012
    Messages
    640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2012
    Messages : 640
    Points : 372
    Points
    372
    Par défaut
    Rebonjour, désolé mais je doit annuler ma demande.
    Ça ne fonctionne déjà pas en ajoutant les types en statique dans la déclaration XmlInclude.
    J'ai cette erreur que je ne comprends pas, je vais devoir faire autrement (Peut-être en binaire finalement si je suis vraiment bloqué).

    Une exception non gérée du type 'System.InvalidOperationException' s'est produite dans System.Xml.dll
    Informations supplémentaires*: Une erreur s'est produite lors de la réflexion du type 'MC_WTV_Converter.clsTask.clsTaskData'.

Discussions similaires

  1. définition de type dans une classe générique
    Par Benoit_T dans le forum Delphi .NET
    Réponses: 2
    Dernier message: 16/03/2009, 17h24
  2. Récupérer objets d'un même type dans une classe
    Par Madfrix dans le forum Langage
    Réponses: 12
    Dernier message: 19/02/2008, 13h17
  3. Réponses: 1
    Dernier message: 17/04/2007, 22h07
  4. 2 objets de même type dans une classe
    Par _R3nO_ dans le forum Hibernate
    Réponses: 2
    Dernier message: 28/02/2007, 16h12
  5. [Tableaux] Déclaration d'un tableau dans une classe
    Par rochenico dans le forum Langage
    Réponses: 4
    Dernier message: 22/12/2006, 11h29

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