Bonsoir les développeurs,

bon voilà je suis sur un projet qui consiste à organiser des minis excursions et leurs étapes.

J'ai une DataGridView dont la DataSource est une collection de mini excursions et cette dernière est stockée dans un fichier binaire à l'aide d'une classe qu'un de mes prof' a créé, voici le code de cette classe :
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
class Persistance<T>
    {
        private string _nomFichier;

        public Persistance(string nomFichier)
        {
            _nomFichier = nomFichier;
        }

        public T charger()
        {
            T objet = Activator.CreateInstance<T>();
            if (System.IO.File.Exists(_nomFichier))
            {
                FileStream fs = new FileStream(_nomFichier, FileMode.Open);
                try
                {
                    BinaryFormatter bf = new BinaryFormatter();
                    objet = (T)bf.Deserialize(fs);
                }
                catch (SerializationException se)
                {
                    throw se;
                }
                finally
                {
                    fs.Close();
                }
                return objet;
            }
            else return objet;
        }

        public void sauver(T unObjet)
        {
            FileStream fs = new FileStream(_nomFichier, FileMode.Create);
            try
            {
                BinaryFormatter bf = new BinaryFormatter();
                bf.Serialize(fs, unObjet);
            }
            catch (SerializationException se)
            {
                throw se;
            }
            finally
            {
                fs.Close();
            }
        }
    }
Sur l'événement form_load de mon formulaire, j'utilise la procédure charger() pour remplir mon DataGridView, cependant quand je lance l'application, j'ai l'exception MissingMethodException qui est levée, voici l'erreur qu'il me sort :
Aucun constructeur sans paramètre défini pour cet objet.
Cette erreur est sur la ligne mise en gras dans ma classe Persistance.
Au cas où, voici le code de mon formulaire :
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
public partial class Form1 : Form
    {
        private classMiniExcursion _mesMiniExc;
        private poo.Persistance<classMiniExcursion> _p;
 
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            _p = new poo.Persistance<classMiniExcursion>("mesMiniExc.bin");
            _mesMiniExc = _p.charger();
            dgvMiniExc.DataSource = _mesMiniExc;
        }
 
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            _p.sauver(_mesMiniExc);
        }
    }
Merci d'avance.

EDIT : la procédure charger() est utilisée sur l'événement form_load, pas closing. Je l'ai modifié dans le texte