Stavy relácie nie je možné serializovať. V režime "StateServer" alebo "SQLServer" ASP.NET serializuje objekty stavu relácie, takže objekty neserializovateľné alebo MarshalByRef nie sú povolené. Rovnaké obmedzenia platia, ak vlastná pamäť stavu relácie vykonáva podobnú serializáciu v režime "Vlastné".
Riešenie:
Premenné nie je možné serializovať pri priraďovaní relácie, preto skúste pridať [Serializable] do triedy. Riešenie problémov
[Serializovateľné] verejná trieda MyClass
{ .......
}
Poďme sa porozprávať o [Serializable], ktorý sa používa na informovanie kompilátora, že trieda môže byť serializovaná
Serializácia označuje proces ukladania stavu inštancie objektu do úložného média. V tomto procese sa verejné a súkromné polia objektu a názov triedy (vrátane zostavy, v ktorej trieda nachádza) prevedú na bytestream pred zápisom bytestreamu do datastreamu. Keď je objekt následne deserializovaný, vytvorí sa identická kópia pôvodného objektu. Pri implementácii mechanizmov serializácie v objektovo orientovanom prostredí musia existovať určité kompromisy medzi jednoduchosťou použitia a flexibilitou. Pokým máte nad týmto procesom dostatočnú kontrolu, môžete ho urobiť takmer automatickým. Napríklad jednoduchá binárna serializácia nestačí, alebo je potrebné určiť, ktoré polia v triede je potrebné serializovať z konkrétneho dôvodu. Nasledujúce časti preskúmajú spoľahlivé mechanizmy serializácie, ktoré poskytuje .NET framework, a zdôraznia niektoré dôležité funkcie, ktoré vám umožňujú prispôsobiť proces serializácie podľa vašich potrieb.
|