Impossible de sérialiser l'état de la session... [mise à Jour!]

Je suis en train de stocker des objets dans la session (qui est à l'aide d'un StateServer), mais j'obtiens l'erreur "le Système.Web.HttpException: Impossible de sérialiser l'état de la session. Dans "StateServer" et "SQLServer " mode"

Je sais ce que le message d'erreur signifie, mais je ne peux pas savoir pourquoi. Toutes les classes que j'utilise sont marqués comme Serializable, et je suis capable de Sérialiser et Désérialiser l'objet et à partir de XML à l'aide de:

System.IO.StringReader stringReader = new System.IO.StringReader(xml);
System.Xml.XmlTextReader xmlTextReader = new System.Xml.XmlTextReader(stringReader);
System.Xml.Serialization.XmlSerializer xmlSerializer = new System.Xml.Serialization.XmlSerializer(typeof(Parts));
Parts obj = ((Parts)(xmlSerializer.Deserialize(xmlTextReader)));

Cela fonctionne, et va Sérialiser ainsi à l'aide de:

System.Xml.Serialization.XmlSerializer xmlSerializer = new System.Xml.Serialization.XmlSerializer(this.GetType());
System.IO.MemoryStream memoryStream = new System.IO.MemoryStream();
xmlSerializer.Serialize(memoryStream, this);
memoryStream.Seek(0, System.IO.SeekOrigin.Begin);
System.IO.StreamReader streamReader = new System.IO.StreamReader(memoryStream);
return streamReader.ReadToEnd();

Mais l'erreur est générée lorsque vous tentez de stocker dans la Session.

Quelqu'un a une idée de ce qui peut être à l'origine de ce comportement?

EDIT:

Je viens de découvrir que cette ligne est à l'origine de l'erreur (après avoir enlevé tout et re-inclus)

///<remarks/>
[System.Xml.Serialization.XmlElementAttribute("RecordReference", typeof(RecordReference), Form = System.Xml.Schema.XmlSchemaForm.Unqualified, Order = 0)]
[System.Xml.Serialization.XmlElementAttribute("PartContainer", typeof(PartContainer), Form = System.Xml.Schema.XmlSchemaForm.Unqualified, Order = 0)]
public object Item
{
    get
    {
        return this.itemField;
    }
    set
    {
        this.itemField = value;
    }
}

Si j'ai mis ce "Point" à la propriété "nouvelle RecordReference()", puis l'erreur se produit. Si elle est nulle, c'est la fin.

Alors maintenant, la question est, pourquoi ne peut-on pas StateServer faire face à cela? Il sérialise fine lors de la sérialisation XML...

MODIFIER...

Type De Système.Xml.XmlElement " dans l'Assembly 'System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" n'est pas marqué comme sérialisable.

.....Sommes nous en train de dire que les objets Xml en C# ne sont pas sérialisable?! Quelqu'un d'autre pense que cela confine au fou?

OriginalL'auteur Paul | 2009-08-26