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 :

Sauvegarder en XML avec des class dynamiques [Débutant]


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Speed41
    Homme Profil pro
    Inscrit en
    Novembre 2002
    Messages
    718
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 718
    Par défaut Sauvegarder en XML avec des class dynamiques
    Bonjour,

    Voici la méthode utilisé pour sauvegarder en XML. Le format me convient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Documentelement testOut1 = new Documentelement
                    {
                        General = new[] { lectureGeneral() },
                        Computer = new[] { lecture() },
                        Configuration = new[] { lectureOS()},
                        Networks = new[] { lectureNetwork(0), lectureNetwork(1), lectureNetwork(2), lectureNetwork(3) }
                    };
                    XmlSerializer ser = new XmlSerializer(typeof(Documentelement));
                    using (TextWriter writer = new StreamWriter(Application.StartupPath + "\\Rapports\\Info PC (" + Environment.MachineName + ")2.xml"))
                    {
                        ser.Serialize(writer, testOut1);
                    }
    Le problème est que la structure est fixée. Par exemple j'ai prévu un maximum de 4 cartes réseaux et je ne sais pas comment faire pour que chaque carte si elle existe s'ajoute dans le document et non toutes.

    Je vais avoir besoin pour lister les logiciels installés sur le PC...

    Merci pour votre aide

    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
    private Network lectureNetwork(int nb)
                {
                    try
                    {
                        Network details = new Network
                        {
                            Nom = LesNetwork[nb].Nom,
                            Mac = LesNetwork[nb].Mac,
                            IP = LesNetwork[nb].IP,
                            DHCP = LesNetwork[nb].DHCP,
                            Domaine = LesNetwork[nb].Domaine,
                            Vitesse = LesNetwork[nb].Vitesse,
                            Vitesse_max = LesNetwork[nb].Vitesse_max
                        };
                        return details;
                    }
                    catch { return null; }
                }
    déclarations des quelques variables variables :

    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
     
             [Serializable]
            [XmlRoot("Rapport")]
            public class Documentelement
            {
                [XmlElement]
                public EnGeneral[] General { get; set; }
                [XmlElement]
                public Computer[] Computer { get; set; }
                [XmlElement]
                public SystemOS[] Configuration { get; set; }
                public Network[] Networks { get; set; }
            }
            public class Network
            {
                [XmlElement]
                public string Nom { get; set; }
                public string Mac { get; set; }
                public string IP { get; set; }
                public string DHCP { get; set; }
                public string Domaine { get; set; }
                public string Vitesse { get; set; }
                public string Vitesse_max { get; set; }
            }

  2. #2
    Membre très actif
    Avatar de charouel
    Homme Profil pro
    Freelance
    Inscrit en
    Mars 2009
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Mars 2009
    Messages : 618
    Billets dans le blog
    9
    Par défaut
    Il faut utilisé& la sérialisation XML OBJECT
    Voir ici

  3. #3
    Membre éclairé Avatar de Speed41
    Homme Profil pro
    Inscrit en
    Novembre 2002
    Messages
    718
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 718
    Par défaut
    Meric pour ta réponse

    On m'a donné ce type de code qui m'a donné de très bon résultats

    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
                           XElement root = new XElement("Rapport",
                               new XElement("General", new XElement[] { new XElement("Hostname", Computer_Hostname),
                                                                        new XElement("Date", String.Format("{0:dd/MM/yyyy}", DateTime.Today))}),
                               new XElement("Computer", new XElement[] {    new XElement("Fabriquant", Computer_Fabriquant),
                                                                            new XElement("Modele", Computer_Modele),
                                                                            new XElement("Nb_serie", Computer_Nb_serie),
                                                                            new XElement("Processeur", Computer_Processeur),
                                                                            new XElement("Nb_coeur", Computer_Nb_coeur),
                                                                            new XElement("Frequence", Computer_Frequence),
                                                                            new XElement("Memoire", Computer_Memoire) }),
                               new XElement("OS", new XElement[] {  new XElement("OS", OS_OS),
                                                                    new XElement("Bits", OS_Bits),
                                                                    new XElement("Pack", OS_Pack),
                                                                    new XElement("Proxy", OS_Proxy),
                                                                    new XElement("SNMP", OS_SNMP),
                                                                    new XElement("SNMP_Public", OS_SNMP_Public)}
                                                                      )
                               );
                XElement listingReseau = new XElement("Network");
                for (int i = 0; i < 4; i++)
                {
                    XElement connect = new XElement("Connection");
                    connect = lectureNetwork(i);
                    if (connect != null)
                    { listingReseau.Add(lectureNetwork(i)); }
                }
                root.Add(listingReseau);
     
     
                root.Save(Application.StartupPath +
    Je vais resté sur cette méthode

    Merci encore

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

Discussions similaires

  1. Problème avec des Class en asp
    Par titou250 dans le forum ASP
    Réponses: 3
    Dernier message: 06/06/2006, 13h22
  2. Manipuler avec des classes
    Par poussinphp dans le forum FMOD
    Réponses: 3
    Dernier message: 03/06/2006, 18h20
  3. [Librairies] Pb avec des classes d'envoi de mails
    Par sami_c dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 29/04/2006, 17h56
  4. Créer du xml avec des données Oracle
    Par Baumont dans le forum Oracle
    Réponses: 3
    Dernier message: 23/11/2005, 15h35
  5. Réponses: 9
    Dernier message: 25/09/2005, 16h33

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