Bonjour à tous !

Je commence à développer en C# et je me confronte déjà à pas mal de problèmes :

J'ai créé une classe sérialisable que voici :
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
48
49
50
51
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.Serialization;
using System.Xml.Serialization;
using System.IO;
 
namespace mysql
{
    public class connexion:ISerializable
    {
        public string login;
        public string mdp;
        public string serveur;
 
        public connexion(string sLogin, string sMdp, string sServeur)
        {
            login = sLogin;
            mdp = sMdp;
            serveur = sServeur;
        }
        public connexion() : this("","",""){
 
        }
 
        public connexion(string chemin)
        {
            mysql.traitements.chargement.chargeXml(chemin, this);
        }
 
        //public void chargeXML(string chemin)
        //{
        //    if (File.Exists(chemin))
        //    {
        //        XmlSerializer serializer = new XmlSerializer(typeof(connexion));
        //        TextReader reader = new StreamReader(chemin);
        //        connexion maConnexion;
        //        maConnexion = (connexion)serializer.Deserialize(reader);
        //        login = maConnexion.login;
        //        reader.Close();
        //    }
        //}
 
        void ISerializable.GetObjectData(SerializationInfo oInfo, StreamingContext oContext)
        {
            oInfo.AddValue("login", this.login);
            oInfo.AddValue("mdp", this.mdp);
            oInfo.AddValue("serveur", this.serveur);
        }
    }
}
Le fais d'avoir une méthode de chargement propre à chacune de mais classe ne me paraissait pas terrible, j'essaye donc de concevoir une fonction générique permettant de charger un objet à partir d'un fichier XML.La fonction "chargeXML" de ma classe connexion fonctionnait j'essaye de la rendre générique à fin de pouvoir charger n'importe quel type d'objet.

J'ai donc créé une classe chargement que voici :
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
 
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Xml.Serialization;
using System.Reflection;
 
namespace mysql.traitements
{
    public class chargement
    {
        public static void chargeXml(string chemin, object oObject)
        {
            if (File.Exists(chemin))
            {
                XmlSerializer serializer = new XmlSerializer(oObject.GetType());
                TextReader reader = new StreamReader(chemin);
                object monObjet;
                monObjet = (object)serializer.Deserialize(reader);
                // Boucle permettant de charger les attributs de l'objet à partir de l'XML
                PropertyInfo[] myPropertyInfo, myPropertyInfo2;
                // Get the properties of 'Type' class object.
                myPropertyInfo = Type.GetType(monObjet.GetType().ToString()).GetProperties();
                for (int i = 0; i < myPropertyInfo.Length; i++)
                {
                    Console.WriteLine(myPropertyInfo[i].ToString());
                    //login = maConnexion.login;
                    //mdp = maConnexion.mdp;
                    //serveur = maConnexion.serveur;
                }
                reader.Close();
            }
            //else
            //{
            //    login = "";
            //    mdp = "";
            //    serveur = "";
            //}
        }
    }
}
Mes problèmes sont les suivants :

1 Je ne parviens pas à lister les propriétés de mon objet :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
myPropertyInfo = Type.GetType(monObjet.GetType().ToString()).GetProperties();
me retourne un tableau vide !

2 Je n'ai aucune idée de comment affecter la valeur charger à partir de mon xml à la propriété de mon objet :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
oObjet.(myPropertyInfo[i].ToString()) =  monObjet.(myPropertyInfo[i].ToString())
Si vous pouviez m'éclairer un peu ce serait bien sympathique, n'hésitez pas à me donner des conseils sur l'approche du code, comme je l'expliquais je débute et je me doute bien que la lecture de mon code doit piquer les yeux avertis.

Merci d'avance

Stéphane