Exception.SerializeObjectState Esemény
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Figyelemfelhívás
BinaryFormatter serialization is obsolete and should not be used. See https://aka.ms/binaryformatter for more information.
Akkor fordul elő, ha a kivétel szerializálva van egy kivételállapot-objektum létrehozásához, amely szerializált adatokat tartalmaz a kivételről.
protected:
event EventHandler<System::Runtime::Serialization::SafeSerializationEventArgs ^> ^ SerializeObjectState;
[System.Obsolete("BinaryFormatter serialization is obsolete and should not be used. See https://aka.ms/binaryformatter for more information.", DiagnosticId="SYSLIB0011", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
protected event EventHandler<System.Runtime.Serialization.SafeSerializationEventArgs>? SerializeObjectState;
protected event EventHandler<System.Runtime.Serialization.SafeSerializationEventArgs>? SerializeObjectState;
protected event EventHandler<System.Runtime.Serialization.SafeSerializationEventArgs> SerializeObjectState;
[<System.Obsolete("BinaryFormatter serialization is obsolete and should not be used. See https://aka.ms/binaryformatter for more information.", DiagnosticId="SYSLIB0011", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
member this.SerializeObjectState : EventHandler<System.Runtime.Serialization.SafeSerializationEventArgs>
member this.SerializeObjectState : EventHandler<System.Runtime.Serialization.SafeSerializationEventArgs>
Protected Custom Event SerializeObjectState As EventHandler(Of SafeSerializationEventArgs)
Eseménytípus
- Attribútumok
Megjegyzések
A kivételállapot-objektum implementálja az interfészt ISafeSerializationData .
SerializeObjectState Az esemény előfizetésekor a kivétel deszerializálva lesz, és üres kivételként jön létre. A kivétel konstruktora nem fut, és a kivétel állapota is deszerializálva van. A CompleteDeserialization kivételállapot-objektum visszahívási metódusa ekkor értesítést kap, hogy deszerializált adatokat küldjön az üres kivételbe.
Az SerializeObjectState esemény lehetővé teszi a transzparens kivételtípusok számára a kivételadatok szerializálását és deszerializálását. A transzparens kód parancsokat hajthat végre azon engedélykészlet korlátain belül, amelyeken belül működik, de nem hajthat végre, nem hívhat meg, nem származtathat és nem tartalmazhat kritikus kódot.
Ha az SerializeObjectState eseményre nincs előfizetve, a deszerializálás a szokásos módon történik a Exception konstruktor használatával.
Az esemény kezelője SerializeObjectState általában a kivétel konstruktorában van hozzáadva a szerializálás biztosításához. Mivel azonban a konstruktort nem hajtja végre az SerializeObjectState eseménykezelő végrehajtásakor, a deszerializált kivétel szerializálása kivételt SerializationException okozhat, amikor megpróbálja deszerializálni a kivételt. Ennek elkerülése érdekében a metódusban hozzá kell adnia az SerializeObjectState esemény kezelőjének is ISafeSerializationData.CompleteDeserialization . Illusztrációért tekintse meg a Példák szakaszt.
Megjegyzések az öröklőkhöz
Ha ezt az eseményt előfizetik és használják, az öröklési hierarchiában következő összes származtatott típusnak ugyanazt a szerializálási mechanizmust kell implementálnia.