Exception.SerializeObjectState Událost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Upozornění
BinaryFormatter serialization is obsolete and should not be used. See https://aka.ms/binaryformatter for more information.
Nastane, když je výjimka serializována vytvořit objekt stavu výjimky, který obsahuje serializovaná data o výjimce.
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)
Event Type
- Atributy
Poznámky
Objekt stavu výjimky implementuje ISafeSerializationData rozhraní.
Když se událost přihlásí k odběru SerializeObjectState , výjimka se deserializuje a vytvoří se jako prázdná výjimka. Konstruktor výjimky není spuštěn a stav výjimky je také deserializován. Metoda CompleteDeserialization zpětného volání objektu stavu výjimky je pak upozorněna, aby mohl odeslat deserializovaná data do prázdné výjimky.
Událost SerializeObjectState umožňuje transparentní typy výjimek serializovat a deserializovat data výjimky. Transparentní kód může spouštět příkazy v mezích sady oprávnění, ve které pracuje, ale nemůže provádět, volat, odvozovat nebo obsahovat kritický kód.
Pokud událost není přihlášena k odběru SerializeObjectState , deserializace nastane obvyklým způsobem pomocí konstruktoru Exception .
Obvykle je obslužná rutina události SerializeObjectState přidána do konstruktoru výjimky, který poskytuje pro jeho serializaci. Protože však konstruktor není proveden při SerializeObjectState spuštění obslužné rutiny události, serializace deserializované výjimky může vyvolat SerializationException výjimku při pokusu o deserializaci výjimky. Chcete-li tomu zabránit, měli byste také přidat obslužnou rutinu SerializeObjectState události v ISafeSerializationData.CompleteDeserialization metodě. Obrázek najdete v části Příklady.
Poznámky pro dědice
Pokud je tato událost odebíraná a používána, musí všechny odvozené typy, které následují v hierarchii dědičnosti, implementovat stejný mechanismus serializace.