Bonjour

Je me heurte a un probleme qui m'interpelle car j'ai encore un trou de compréhension qq part

Je definis une classe et dans son constructeur j'aimerais appeller une methode de désérialisation.
Mais j'ai le message :

Cannot assign to '<this>' because it is read-only
Est ce que cela signifie qu'une classe ne peut pas avoir son propre désérializer et que je suis obligé d'utiliser une methode statique externe ?

Voici l'exemple, c'est :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
this = (C_Algemeen)xs.Deserialize(reader);
Qui pose problème

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
 public class C_Algemeen
  {
    public bool[] ForbidDays { get; set; }
    public List<Plage> ForbidTime {get;set;}
 
    public C_Algemeen()
    {
    }
 
    public C_Algemeen(string _file)
    {
       LoadXml(_file);
    }
    public void LoadXml(string FileName)
    {
      if (!File.Exists(FileName))
      {
        return;
      }
      try
      {
        using (StreamReader fs = new StreamReader(FileName))
        {
          XmlReaderSettings xmlSettings = new XmlReaderSettings();
          xmlSettings.CloseInput = true;
          xmlSettings.IgnoreWhitespace = true;
          xmlSettings.ConformanceLevel = ConformanceLevel.Document;
          xmlSettings.CloseInput = false;
          XmlReader reader = XmlReader.Create(fs, xmlSettings);
 
 
          XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
          ns.Add("", "");
          XmlSerializer xs = new XmlSerializer(typeof(C_Algemeen));
          this = (C_Algemeen)xs.Deserialize(reader);
          reader.Close();
          fs.Close();
        }
      }
      catch
      {
      }
      return;
    }
  }