Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 16577|Odpoveď: 1

[ASP.NET] Stavy relácie nie je možné serializovať. V režime "StateServer" alebo "SQLServer"...

[Kopírovať odkaz]
Zverejnené 18. 11. 2017 21:37:45 | | | |
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.





Predchádzajúci:ASP.NET StateServer, ktorý ukladá reláciu
Budúci:sqlserver ako skopírovať jednu tabuľku pre druhú
 Prenajímateľ| Zverejnené 19. 11. 2017 16:19:48 |
Pre niektoré objekty, ktoré zdedia z MarshalByRef, ako sú objekty DbTransation, nie je možné serializovať. Preto nemôžete použiť Session na ukladanie objektov, ktoré zdedia typ MarshalByRef.
Obchádzkou je použiť Cache a SessionID na emuláciu relácie. Trieda Cache môže ukladať akýkoľvek typ objektu.
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com