Pourquoi le OnDeserialization pas le feu pour la Désérialisation XML?

J'ai un problème que j'ai été bashing ma tête contre pour le mieux partie de trois heures. Je suis presque certain que j'ai raté quelque chose saute aux yeux...

J'ai un fichier XML simple:

<?xml version="1.0" encoding="utf-8"?>
<WeightStore xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns:xsd="http://www.w3.org/2001/XMLSchema">  
  <Records>
    <Record actual="150" date="2010-05-01T00:00:00" />
    <Record actual="155" date="2010-05-02T00:00:00" />
  </Records>
</WeightStore>

J'ai une simple structure de classe:

[Serializable]
public class Record
{
    [XmlAttribute("actual")] public double weight { get; set; }
    [XmlAttribute("date")]   public DateTime date { get; set; }
    [XmlIgnore]              public double trend { get; set; }
}

[Serializable]
[XmlRoot("WeightStore")]
public class SimpleWeightStore
{
    [XmlArrayAttribute("Records")]
    private List<Record> records = new List<Record>();
    public List<Record> Records { get { return records; } }

    [OnDeserialized()]
    public void OnDeserialized_Method(StreamingContext context)
    {
        //This code never gets called
        Console.WriteLine("OnDeserialized");
    }
}

Je suis à l'aide de ces deux code d'appel et dans les fichiers de classe:

using System.Xml.Serialization;
using System.Runtime.Serialization;

J'ai peu de code d'appel:

SimpleWeightStore weight_store_reload = new SimpleWeightStore();
TextReader reader = new StringReader(xml);
XmlSerializer deserializer = new XmlSerializer(weight_store.GetType());
weight_store_reload = (SimpleWeightStore)deserializer.Deserialize(reader);

Le problème est que je suis dans l'attente d'OnDeserialized_Method à être appelé, et il n'est pas.

Je pense qu'elle pourrait avoir quelque chose à voir avec le fait que c'est la désérialisation XML plutôt que de l'Exécution de la désérialisation, et peut-être que je suis en utilisant le mauvais nom de l'attribut, mais je ne peux pas savoir ce que cela pourrait être.

Les idées, les gens?

OriginalL'auteur Jonathan | 2010-05-24