Stavy relace nelze serializovat. V režimu "StateServer" nebo "SQLServer" ASP.NET serializuje objekty stavů relace, takže objekty bez serializovatelnosti nebo MarshalByRef nejsou povoleny. Stejná omezení platí, pokud vlastní úložiště stavu relace provádí podobnou serializaci v režimu "Custom".
Řešení:
Proměnné nelze serializovat při přiřazení relace, proto zkuste přidat [Serializable] do třídy. Řešení problémů
[Serializovatelné] veřejná třída MyClass
{ .......
}
Pojďme si povědět o [Serializable], který slouží k informování kompilátoru, že třída může být serializována
Serializace označuje proces ukládání stavu instance objektu do úložného média. V tomto procesu jsou veřejná a soukromá pole objektu a název třídy (včetně assembleru, ve kterém třída sídlí) převedeny do bytestreamu před zápisem bytestreamu do datového proudu. Když je objekt následně deserializován, vytvoří se identická kopie původního objektu. Při implementaci mechanismů serializace v objektově orientovaném prostředí musí existovat určité kompromisy mezi snadností používání a flexibilitou. Pokud máte nad tímto procesem dostatečnou kontrolu, můžete ho udělat téměř automatickým. Například jednoduchá binární serializace nestačí, nebo je potřeba určit, která pole ve třídě je třeba serializovat z konkrétního důvodu. Následující sekce prozkoumají spolehlivé mechanismy serializace, které poskytuje .NET framework, a zdůrazní některé důležité funkce, které vám umožní přizpůsobit proces serializace podle vašich potřeb.
|