A session állapotok nem serializálhatók. "StateServer" vagy "SQLServer" módban ASP.NET sorializálja a session állapot objektumokat, így nem serializálható objektumok vagy MarshalByRef objektumok nem engedélyezettek. Ugyanezek a korlátozások érvényesek, ha az egyedi session állapot tároló hasonló sorozatozást végez "Custom" módban.
Megoldás:
A változókat nem lehet soriálisítani Session hozzárendelésekor, ezért próbáld meg hozzáadni a [Serializable] (Serializable] opciót az osztályhoz. Problémamegoldás
[Sorozatosítható] public class MyClass
{ .......
}
Beszéljünk a [Serializable]-ról, amelyet arra használnak, hogy a fordítót tájékoztatják, hogy az osztály serializálható
A serializáció azt jelenti, hogy egy objektumpéldány állapotát tároló eszközre tárolják. Ebben a folyamatban az objektum nyilvános és privát mezői, valamint az osztály neve (beleértve az osztály összeállítását is) bájtfolyammá alakítják, mielőtt a bájtfolyamot az adatfolyamba írnák. Amikor az objektumot később deserializálják, az eredeti objektum azonos másolata jön létre. A serializációs mechanizmusok megvalósításakor objektumorientált környezetben kell lennie kompromisszumoknak a használat egyszerűsége és a rugalmasság között. Amíg elegendő kontrollod van ezen a folyamatnak, nagyrészt automatikussá teheted. Például az egyszerű bináris serializáció nem elegendő, vagy szükség van arra, hogy meghatározzuk, mely mezőket kell egy osztályban sorolni. A következő részek bemutatjuk a .NET keretrendszer megbízható serializációs mechanizmusait, és kiemeljük azokat a fontos funkciókat, amelyek lehetővé teszik, hogy a sorozatozási folyamatot az igényeidhez igazítsd.
|