Istuntotiloja ei voi sarjoittaa. "StateServer"- tai "SQLServer"-tilassa ASP.NET sarjoittaa istuntotila-objektit, joten ei-sarjoitettavat objektit tai MarshalByRef-objektit eivät ole sallittuja. Samat rajoitukset pätevät, jos mukautettu istuntotilavarasto suorittaa vastaavan sarjoittamisen "Custom"-tilassa.
Ratkaisu:
Muuttujia ei voi sarjoittaa Sessionin määrittämisessä, joten kokeile lisätä [Serializable] luokkaan. Ongelmanratkaisu
[Sarjoitettavissa] public class MyClass
{ .......
}
Puhutaanpa [Serializable]-järjestelmästä, jota käytetään kertomaan kääntäjälle, että luokka voidaan sarjoittaa
Sarjoittaminen tarkoittaa prosessia, jossa objekti-instanssin tila tallennetaan tallennusvälineelle. Tässä prosessissa objektin julkiset ja yksityiset kentät sekä luokan nimi (mukaan lukien kokoonpano, jossa luokka sijaitsee) muunnetaan tavuvirraksi ennen kuin tavuvirta kirjoitetaan datavirtaan. Kun objekti myöhemmin deserialisoidaan, luodaan identtinen kopio alkuperäisestä objektista. Serialisointimekanismeja toteutettaessa oliopohjaisessa ympäristössä on oltava kompromisseja helppokäyttöisyyden ja joustavuuden välillä. Kunhan sinulla on riittävästi kontrollia tähän prosessiin, voit tehdä siitä pääosin automaattisen. Esimerkiksi yksinkertainen binäärinen sarjoittaminen ei riitä, tai on tarpeen määrittää, mitkä kentät luokassa täytyy sarjoittaa tietystä syystä. Seuraavissa osioissa tarkastellaan .NET-kehyksen luotettavia sarjoittamismekanismeja ja korostetaan joitakin tärkeitä ominaisuuksia, joiden avulla voit räätälöidä sarjallistamisprosessin tarpeidesi mukaan.
|