Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 16577|Atsakyti: 1

[ASP.NET] Seanso būsenų negalima suskirstyti į eilutes. "StateServer" arba "SQLServer" režimu...

[Kopijuoti nuorodą]
Paskelbta 2017-11-18 21:37:45 | | | |
Seanso būsenų negalima suskirstyti į eilutes. "StateServer" arba "SQLServer" režimu ASP.NET nuoseklizuos seanso būsenos objektus, todėl nenuoseklūs objektai arba MarshalByRef objektai neleidžiami. Tie patys apribojimai taikomi, jei pasirinktinė seanso būsenos saugykla atlieka panašų serializavimą "Custom" režimu.        



Sprendimas:

Priskiriant seansą kintamųjų negalima suskirstyti į eilutes, todėl pabandykite pridėti [Serializable] prie klasės. Problemų sprendimas

[Nuosekli]
viešoji klasė MyClass
{
.......
}

Pakalbėkime apie [Serializable], kuris naudojamas kompiliatoriui informuoti, kad klasė gali būti nuosekliai

Serializacija reiškia objekto egzemplioriaus būsenos saugojimo laikmenoje procesą. Šiame procese viešieji ir privatūs objekto laukai ir klasės pavadinimas (įskaitant rinkinį, kuriame yra klasė) konvertuojami į baitų srautą prieš rašant baitų srautą į duomenų srautą. Kai objektas vėliau deserializuojamas, sukuriama identiška originalaus objekto kopija.
Diegiant serializacijos mechanizmus objektinėje aplinkoje, turi būti tam tikrų kompromisų tarp naudojimo paprastumo ir lankstumo. Kol pakankamai kontroliuojate šį procesą, galite jį padaryti iš esmės automatinį. Pavyzdžiui, paprasto dvejetainio serializavimo nepakanka arba reikia nustatyti, kuriuos klasės laukus reikia nuosekliai suskirstyti dėl konkrečios priežasties. Tolesniuose skyriuose bus nagrinėjami patikimi .NET sistemos teikiami serializavimo mechanizmai ir išryškintos kai kurios svarbios funkcijos, leidžiančios pritaikyti serializavimo procesą pagal savo poreikius.





Ankstesnis:ASP.NET būsenos serveris, kuriame saugomas seansas
Kitą:sqlserver: kaip nukopijuoti vieną lentelę į kitą
 Savininkas| Paskelbta 2017-11-19 16:19:48 |
Kai kurių objektų, paveldėtų iš MarshalByRef, pvz., DbTransation objektų, negalima nuosekliai skirstyti. Todėl negalite naudoti seanso objektams, kurie paveldi MarshalByRef tipą, saugoti.
Sprendimas yra naudoti talpyklą ir seanso ID seansui imituoti. Talpyklos klasė gali talpykloje saugoti bet kokio tipo objektus.
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com