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 :

Empecher la serialization de proprieté publiques [Fait]


Sujet :

C#

  1. #1
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut Empecher la serialization de proprieté publiques
    Bonjour

    Je ne parviens toujours pas a trouver le moyen d'empecher la serialization de certains elements public d'une classe
    J'ai vu qu'il y avait un Tag NonSerializable mais je n'ai pas trouvé le moyen correct de l'employer

    Exemple :

    Pour serializer une classe de parametres, j'emploie la méthode ci apres.

    Malheureusement ma classe contient la définition d'un brush qui n'est pas sérialisable, mais je n'ai pas besoin de serializer ce brush

    Est-il possible d'employer [NonSerializable] ou autre chose pour eviter la serialisation d'elements ?

    Meci de votre aide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        public  SolidBrush LgdPrintBrush
        {
          get { return _lgdPrintBrush; }
          set { _lgdPrintBrush = value; }
        }

    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
        private void SaveSetting()
        {
          XmlSerializer xs;
          StreamWriter sw;
          string TemplateFile = "d:/tmp/xxx.xml";
          if (TemplateFile.Length <= 0)
          {
            return;
          }
          xs = new XmlSerializer(typeof(C_PrintSettings));
          using (sw = new StreamWriter(TemplateFile, false, Encoding.Default))
          {
            xs.Serialize(sw, Document.PrintSettings);
            sw.Close();
          }
        }

  2. #2
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660

  3. #3
    Rédacteur
    Avatar de benji_dv
    Homme Profil pro
    Architecte
    Inscrit en
    Juillet 2005
    Messages
    375
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 375
    Points : 1 276
    Points
    1 276
    Par défaut
    Bonjour,

    Tout simplement en décorant la property de XmlIgnoreAttribute,

    Doc MSDN en :
    http://msdn.microsoft.com/en-us/libr...xmlignore.aspx

    Doc MSDN fr :
    http://msdn.microsoft.com/fr-fr/libr...re(VS.80).aspx

    Pour ton extrait de code : ca ressemble à un trux comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        using System.Xml; // si je ne trompe pas...
        ...
     
        [XmlIgnore()]
        public  SolidBrush LgdPrintBrush
        {
          get { return _lgdPrintBrush; }
          set { _lgdPrintBrush = value; }
        }

  4. #4
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Merci

    J'etais resté coincé sur

    NonSerializable

    Maintenant la question etait purement académique afin de provisoirement eviter une excepttion lors de la serialization de Font ou de Colors

    Entretemps j'ai créé des classes qui exposent les propriétés nécessaire a la sérialization

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

Discussions similaires

  1. empecher saisie dans champ de type serial
    Par mapmip dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 15/04/2010, 10h44
  2. Réponses: 6
    Dernier message: 03/09/2006, 19h45
  3. Empecher saisie manuelle d'un champ serial ?
    Par ctobini dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 09/11/2005, 18h00
  4. [C#] Recuperer les proprietes publiques d'un .ascx
    Par akecoocoo dans le forum ASP.NET
    Réponses: 4
    Dernier message: 30/06/2004, 19h06
  5. [] Datagrid vide après modification des propriétés
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 20/09/2002, 16h37

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