Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 16577|Odpověď: 1

[ASP.NET] Stavy relace nelze serializovat. V režimu "StateServer" nebo "SQLServer"...

[Kopírovat odkaz]
Zveřejněno 18.11.2017 21:37:45 | | | |
Stavy relace nelze serializovat. V režimu "StateServer" nebo "SQLServer" ASP.NET serializuje objekty stavů relace, takže objekty bez serializovatelnosti nebo MarshalByRef nejsou povoleny. Stejná omezení platí, pokud vlastní úložiště stavu relace provádí podobnou serializaci v režimu "Custom".        



Řešení:

Proměnné nelze serializovat při přiřazení relace, proto zkuste přidat [Serializable] do třídy. Řešení problémů

[Serializovatelné]
veřejná třída MyClass
{
.......
}

Pojďme si povědět o [Serializable], který slouží k informování kompilátoru, že třída může být serializována

Serializace označuje proces ukládání stavu instance objektu do úložného média. V tomto procesu jsou veřejná a soukromá pole objektu a název třídy (včetně assembleru, ve kterém třída sídlí) převedeny do bytestreamu před zápisem bytestreamu do datového proudu. Když je objekt následně deserializován, vytvoří se identická kopie původního objektu.
Při implementaci mechanismů serializace v objektově orientovaném prostředí musí existovat určité kompromisy mezi snadností používání a flexibilitou. Pokud máte nad tímto procesem dostatečnou kontrolu, můžete ho udělat téměř automatickým. Například jednoduchá binární serializace nestačí, nebo je potřeba určit, která pole ve třídě je třeba serializovat z konkrétního důvodu. Následující sekce prozkoumají spolehlivé mechanismy serializace, které poskytuje .NET framework, a zdůrazní některé důležité funkce, které vám umožní přizpůsobit proces serializace podle vašich potřeb.





Předchozí:ASP.NET StateServer, který ukládá Session
Další:SQL Server Jak zkopírovat jednu tabulku pro druhou
 Pronajímatel| Zveřejněno 19.11.2017 16:19:48 |
U některých objektů, které dědí z MarshalByRef, například objektů DbTransation, nelze je serializovat. Proto nelze použít Session k ukládání objektů, které dědí typ MarshalByRef.
Řešením je použít cache a SessionID k emulaci relace. Třída Cache může ukládat jakýkoli typ objektu.
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com