Sesijas stāvokļus nevar serializēt. "StateServer" vai "SQLServer" režīmā ASP.NET serializēs sesijas stāvokļa objektus, tāpēc neserializējami objekti vai MarshalByRef objekti nav atļauti. Tie paši ierobežojumi tiek piemēroti, ja pielāgotā sesijas stāvokļa krātuve veic līdzīgu serializāciju režīmā "Pielāgots".
Šķīdums:
Piešķirot sesiju, mainīgos nevar serializēt, tāpēc mēģiniet klasei pievienot [Serializable]. Problēmu risināšana
[Seriāls] publiskā klase MyClass
{ .......
}
Parunāsim par [Serializable], kas tiek izmantots, lai informētu kompilatoru, ka klasi var serializēt
Serializācija attiecas uz objekta instances stāvokļa glabāšanas procesu datu nesējā. Šajā procesā objekta publiskie un privātie lauki un klases nosaukums (ieskaitot montāžu, kurā atrodas klase) tiek pārvērsti par baitu plūsmu pirms baitu plūsmas rakstīšanas datu plūsmā. Kad objekts pēc tam tiek deserializēts, tiek izveidota identiska oriģinālā objekta kopija. Ieviešot serializācijas mehānismus objektorientētā vidē, ir jābūt dažiem kompromisiem starp lietošanas ērtumu un elastību. Kamēr jums ir pietiekama kontrole pār šo procesu, jūs varat to padarīt lielā mērā automātisku. Piemēram, ar vienkāršu bināro serializāciju nepietiek, vai arī ir jānosaka, kuri klases lauki ir jāserializē konkrēta iemesla dēļ. Nākamajās sadaļās tiks izpētīti uzticamie serializācijas mehānismi, ko nodrošina .NET framework, un izceltas dažas svarīgas funkcijas, kas ļauj pielāgot serializācijas procesu savām vajadzībām.
|