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 Forms Discussion :

[C#] Sauvegarder une ArrayList en Settings


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Juin 2006
    Messages : 73
    Par défaut [C#] Sauvegarder une ArrayList en Settings
    Bonjour,

    Je sauvegarde des variables de mon programme grâce aux settings.

    Exemple : Properties.Settings.Default.location = monArrayList;
    Bien sur je fais bien le Properties.Settings.Default.Save();

    Lors du rechargement de mon application, j'ai systématiquement null dans ma settings devant contenir l'ArrayList. Toutes les autres settings sont bonne. L'arrayList au moment de la sauvegarde et bien remplie aussi (vérifié en mode debug). Je tourne en rond depuis un moment, je comprend vraiment pas pourquoi ? Quelqu'un a déjà essayé de faire cela avec succés ?

    merci d'avance.

  2. #2
    Membre Expert Avatar de bossun
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 359
    Par défaut
    tu sauvegardes quel genre de données dans ton arraylist???

    les données que tu mets dans les arraylist doivent être serializable sinon ben rien....

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Juin 2006
    Messages : 73
    Par défaut
    effectivement, je sauvegarde un objet "maison" et je n'ai rien précisé pour qu'il soit sérializable. Je vais donc creuser de ce cotés là, merci beaucoup.

  4. #4
    Membre Expert Avatar de bossun
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 359
    Par défaut
    bent t'as juste à ajuter l'attribut [Serializable] comme ça:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    [Serializable]
    class Maison
    {
    ...
    }

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Juin 2006
    Messages : 73
    Par défaut
    bon, j'ai testé, cela ne marche toujours pas.

    voici ma classe qui représente les objets que je met dans mon ArrayList, rien d'extraordinaire, juste 3 strings :
    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
    41
    42
    43
    44
    45
    46
    47
     
    using System;
    using System.Collections.Generic;
    using System.Text;
     
    namespace Xtream_ToolBox {
        [Serializable]
        class Location {
            private String myName;
            private String myType;
            private String myLocation;
     
            public Location(String name, String type, String location) {
                myName = name;
                myType = type;
                myLocation = location;
            }
     
            public string name {
                get {
                    return myName;
                }
            }
     
            public string completeName {
                get {
                    if (myType.Equals("fs")) {
                        return "[filesystem] " + myName + " (" + myLocation + ")";
                    } else {
                        return "[web] " + myName + " (" + myLocation + ")";
                    }
                }
            }
     
            public string type {
                get {
                    return myType;
                }
            }
     
            public string location {
                get {
                    return myLocation;
                }
            }
        }
    }
    Quand je débug en pas à pas, je vois bien le nombre d'elements dans mon ArrayList au moment de sa sauvegarde (exemple : 2 éléments indiqués sur la variable "optionsForm.locations") :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Properties.Settings.Default.location = optionsForm.locations;
    Properties.Settings.Default.Save();

    Mais au rechargement, j'ai systématiquement null dans "Properties.Settings.Default.location".

    une autre idée ?

Discussions similaires

  1. sauvegarder une liste dans les settings
    Par ola-oz dans le forum C#
    Réponses: 3
    Dernier message: 03/08/2010, 12h11
  2. Réponses: 2
    Dernier message: 30/05/2008, 04h48
  3. Sauvegarder une couleur dans un champ Alphanum
    Par Harry dans le forum Bases de données
    Réponses: 2
    Dernier message: 21/07/2004, 11h21
  4. [VB6] Sauvegarder une collection d'objets
    Par Sayagh dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 19/09/2003, 11h58
  5. Sauvegarder une surface dans un fichier
    Par Freakazoid dans le forum DirectX
    Réponses: 6
    Dernier message: 18/08/2002, 15h23

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