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

C# Discussion :

RootElement et IXmlSerializable


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Par défaut RootElement et IXmlSerializable
    Salut

    comment ne pas avoir de root element quand on implement IXmlSerializable ?

    ++

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Euh... c'est à dire ? si tu n'as pas d'élément racine, ton XML n'est pas valide...

    Essaie de donner plus de détails, il y a sans doute un autre moyen de faire ce que tu veux. Et en général, IXmlSerializable est à utiliser en dernier recours, il y a plein d'autres astuces pour customiser la sérialisation XML d'une classe... regarde si tu ne trouves pas ton bonheur là-dedans :
    http://tlevesque.developpez.com/dotn...serialization/
    http://tlevesque.developpez.com/dotn...rialization-2/

  3. #3
    Membre éprouvé Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Par défaut
    Merci

    voici mon probleme ...
    J ai plusieurs classes qui "correspondent" a un dictionnaire...et j aimerais serialiser l ensemble ...

    <Params>
    <App id = 1>
    <C id =1>
    </C>
    </App>
    <App id = 2>
    <C id =3>
    </C>
    </App>
    </Params>
    J ai une classe qui correspond a un dic de C; une qui correspond a un dic de App et un dic de Params...

    J ai implemente IXmlSerializable pour chaque classe ...mais il me rajoute toujours un root dont je n ai pas besoin ....

    ++

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Je comprends pas ce que tu veux dire... quand tu dis "un dic de C", ça veut dire quoi ? C est le type de la valeur ? et quel est le type de la clé ?

    Quel est "l'élément root" qui te gêne ? Montre le XML complet, et ce que tu voudrais obtenir à la place, et le code des classes

    Dans le 2e lien que je t'ai donné, il y a une technique pour sérialiser un dictionnaire sans utiliser IXmlSerializable

  5. #5
    Membre éprouvé Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Par défaut
    Oups ok pur le 2 liens

    Pour mon ex ...toutes les classes sont des dictionnaires ayant des cles et des valeurs de types differents, mon soucis est qu en implementant IXmlSerializable dans chacune des classes j obtient un xml de ce style :

    <Params>
    <AppDic>
    <App id = 1>
    <CDic>
    <C id =1>
    </C>
    </CDic>
    </App>
    </AppDic>
    <AppDic>
    <App id = 2>
    <CDic>
    <C id =3>
    </C>
    </CDic>
    </App>
    </AppDic>
    </Params>
    alors que j aimerais cela :

    <Params>
    <App id = 1>
    <C id =1>
    </C>
    </App>
    <App id = 2>
    <C id =3>
    </C>
    </App>
    </Params>

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Tu veux vraiment pas me donner tous les éléments que je t'ai demandés, hein . C'est vraiment pas évident de t'aider si tu me donnes les éléments au compte-goutte...

    Sinon, je vois pas vraiment où est le problème... si tu implémentes IXmlSerializable, c'est toi qui génères toutes ces balises, et personne d'autre ! donc il suffit que tu supprimes les instructions qui génèrent ces balises.

Discussions similaires

  1. Implementer correctement IXmlSerializable
    Par Seth77 dans le forum Général Dotnet
    Réponses: 0
    Dernier message: 25/05/2010, 22h17

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