Deserialisation d'une classe
Bonjour
Je me heurte a un probleme qui m'interpelle car j'ai encore un trou de compréhension qq part :oops:
Je definis une classe et dans son constructeur j'aimerais appeller une methode de désérialisation.
Mais j'ai le message :
Citation:
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:
this = (C_Algemeen)xs.Deserialize(reader);
Qui pose problème
Code:
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;
}
} |