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

Windows Presentation Foundation Discussion :

[Désérialisation] Ordre des dependency property


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 163
    Par défaut [Désérialisation] Ordre des dependency property
    Bonjour,

    J'ai créé un custom control qui comporte 2 dependency property.
    Sur le changement de valeur de la dependency property 1, je fais un traitement qui prend en compte la valeur de la dependency property 2.

    Je serialise mon control avec le xaml serialiseur.
    Malheureusement, lorsque je désérialise mon control, il arrive que la dependency property 1 soit désérialisée avant la dependency property 2.

    Est-ce qu'il existe un moyen de fixer un ordre de désérialisation des dependency property ?

    Merci d'avance.

  2. #2
    Membre Expert
    Avatar de GuruuMeditation
    Homme Profil pro
    .Net Architect
    Inscrit en
    Octobre 2010
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 705
    Par défaut
    L'attribut XMLelement à une propriété Order pour ça. Mais une fois que tu l'utilises, tu dois l'utiliser sur toutes les propriétés. http://msdn.microsoft.com/en-us/libr...ute.order.aspx

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 163
    Par défaut
    J'ai testé l'attribut XmlElement avec la propriété Order mais quand je met un point d'arrêt dans le set de chaque propriété, l'ordre n'est pas celui que j'ai paramètré !?
    J'ai testé volontairement une classe simple (classe MyClass ) avec 2 propriétés CLR et je sérialise/désérialise de la manière suivante:

    Sérialisation:
    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
    StringBuilder outString= new StringBuilder();
    
    XmlWriterSettings settings = new XmlWriterSettings();
    settings.Indent = true;
    settings.OmitXmlDeclaration = true;
    settings.ConformanceLevel = ConformanceLevel.Fragment;
    
    XmlWriter writer = XmlWriter.Create(outString, settings);
    
    XamlDesignerSerializationManager serializationManager = new XamlDesignerSerializationManager(writer);
    serializationManager.XamlWriterMode = XamlWriterMode.Expression;
    
    XamlWriter.Save(ObjectToSerialize, serializationManager)
    ; => mon instance d'objet à sérialiser
    Désérialisation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    using (StringReader reader = new StringReader(outString)) => mon objet sérialisé
    {
        MyClass deserializedObject = XamlReader.Load(XmlReader.Create(reader)) as MyClass;
    }

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 163
    Par défaut
    J'ai testé également avec XmlSerializer, et la, cela fonctionne bien

    Sérialisation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    XmlSerializer xmlserializer = new XmlSerializer(typeof(MyClass));
    xmlserializer.Serialize(writer, ObjectToSerialize);
    Désérialisation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    StringReader reader = new StringReader(ObjectToDeserialized);
    XmlSerializer xmlserializer = new XmlSerializer(typeof(MyClass));
    var objectDeserialized = xmlserializer.Deserialize(reader);
    Est-ce que l'attribut XmlElement est reconnu par le xaml serialiseur ?
    Je ne trouve rien sur ce sujet...

  5. #5
    Membre Expert
    Avatar de GuruuMeditation
    Homme Profil pro
    .Net Architect
    Inscrit en
    Octobre 2010
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 705
    Par défaut
    Zut, mal lu, j'ai pas vu que tu parlais du XAML serializer, j'avais lu XML Serializer. Petite cause, grande conséquence.

    Je ne pense pas que le XAML serializer utilise le XMLElement.

    Il y a une raison pour que tu doives absolument utiliser le XAMLSerializer ?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 163
    Par défaut
    Oui. Je sérialise des Controls et autres éléments WPF.

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

Discussions similaires

  1. initialisation des dependency property
    Par ikeas dans le forum Windows Presentation Foundation
    Réponses: 1
    Dernier message: 13/08/2008, 22h22
  2. Modifier l'ordre des Fields d'un dataset
    Par teska dans le forum Bases de données
    Réponses: 3
    Dernier message: 22/03/2004, 16h38
  3. Modifier l'ordre des cartes son
    Par YéTeeh dans le forum Matériel
    Réponses: 3
    Dernier message: 19/08/2003, 01h13
  4. Ordre des champs dans une table
    Par patapetz dans le forum Outils
    Réponses: 5
    Dernier message: 30/07/2003, 06h53
  5. Question : ordre des bits ?
    Par Choupi dans le forum C
    Réponses: 3
    Dernier message: 11/02/2003, 06h22

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