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

Développement Windows Discussion :

C# - Binding et XmlSerializer dans vue-modèle


Sujet :

Développement Windows

  1. #1
    Candidat au Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2022
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2022
    Messages : 3
    Points : 4
    Points
    4
    Par défaut C# - Binding et XmlSerializer dans vue-modèle
    Bonjour à tous,

    Je souhaiterais un avis et éventuellement être corrigé car j'ai bricolé quelque chose pour sauvegarder un changement à partir d'un databinding mais j'ai l'intuition qu'il doit y avoir la possibilité de faire quelque chose de plus "propre", ou disons conventionnel.

    Voici donc l'extrait où la propriété Nom de ma vue-modèle doit enregistrer le nouveau nom dans le fichier XML :

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    public string Nom
            {
                get { return nom; }
                set
                {
                    if(nom != null)
                    {
     
                        XmlSerializer xs = new XmlSerializer(typeof(Dt_Classes.Classe));
                        using (StreamReader rd = new StreamReader(dossierGestion + '\\' + "4eD.xml"))
                        {
     
                            uneClasse = xs.Deserialize(rd) as Dt_Classes.Classe;
     
                            var lEleve = from eleve in uneClasse.LesEleves
                                         where eleve.NomEleve == nom
                                         select eleve;
     
                            int Index;
     
                            foreach(Dt_Classes.Eleve eleve in lEleve)
                            { 
                                Index = uneClasse.LesEleves.IndexOf(eleve);
                                uneClasse.LesEleves[Index].NomEleve = value;
                            }
                        }
     
                       XmlSerializer xs2 = new XmlSerializer(typeof(Dt_Classes.Classe));
                       using (StreamWriter wr = new StreamWriter(dossierGestion + "\\" + "4eD.xml"))
                       {
                           xs2.Serialize(wr, uneClasse);
                       }
     
     
                    }
                    nom = value;
                    OnPropertyChanged("Nom");
     
                }
            }
    Merci beaucoup pour vos retours.

    En vous souhaitant une bonne journée,

  2. #2
    Membre éprouvé
    Homme Profil pro
    Administrateur Systèmes, Clouds et Réseaux /CAO/DAO/Ingénierie Electrotechnique
    Inscrit en
    Décembre 2014
    Messages
    449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur Systèmes, Clouds et Réseaux /CAO/DAO/Ingénierie Electrotechnique

    Informations forums :
    Inscription : Décembre 2014
    Messages : 449
    Points : 991
    Points
    991
    Par défaut
    Salut, je ne suis qu'amateur dans le développement c# mais je ne suis pas fan de la manière dont tu abordes.

    Déjà il faut savoir de l'autre côté quand va se produire ton changement, je t'invite si tu n'as pas géré cet aspect à regarder par toi même en prenant par exemple avec notepad++ quand ton fichier est modifié.
    Egalement si tu voulais continuer à gérer ainsi, je pense que ça serait plus propre de mettre ça dans une méthode.

    Enfin, je me trompe peut être mais j'ai l'impression que tu vas lire ton fichier à chaque changement, ce qui peut rapidement être super lourd et ça aurait tendance à se gérer autrement. De là à étudier selon les choix techniques :
    - Si on est plusieurs je check la dernière version de modif si elle est postérieure à... je recharge le fichier.
    - Si je suis seul, autant ne charger qu'une fois, et même selon bloquer l'accès derrière en écriture pourrait être intéressant pour éviter des modifs manuelles pouvant amener des erreurs.
    - Si mon fichier est très gros autant en effet bosser sur quelque chose qui ne serait pas chargé en mémoire mais à ce compte je vais plutôt passer par du regex que par de la serialization (avis perso)

    C'est juste des pistes de réflexion en attendant des avis d'experts.

    Cordialement.

Discussions similaires

  1. Réponses: 6
    Dernier message: 01/04/2016, 17h01
  2. Les vues dans le modèle relationnel objet
    Par r_thelord dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 10/12/2010, 19h01
  3. Écrire des requêtes dans le modèle relationnel
    Par Paulinho dans le forum Requêtes
    Réponses: 1
    Dernier message: 24/12/2005, 19h41
  4. Critères dans Vue et Procédures stockées
    Par DMboup dans le forum Projets ADP
    Réponses: 9
    Dernier message: 20/05/2005, 21h55
  5. [DOM] Les nodes dans le modèle DOM
    Par Bele'nos dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 07/03/2005, 22h43

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