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 :
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 :
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(); } } }
Cette erreur est sur la ligne mise en gras dans ma classe Persistance.Aucun constructeur sans paramètre défini pour cet objet.
Au cas où, voici le code de mon formulaire :
Merci d'avance.
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); } }
EDIT : la procédure charger() est utilisée sur l'événement form_load, pas closing. Je l'ai modifié dans le texte
Partager