Exception.SerializeObjectState Událost

Definice

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 k vytvoření objektu stavu výjimky, který obsahuje serializovaná data o výjimce.

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}")]
protected event EventHandler<System.Runtime.Serialization.SafeSerializationEventArgs>? SerializeObjectState;
protected event EventHandler<System.Runtime.Serialization.SafeSerializationEventArgs> SerializeObjectState;
member this.SerializeObjectState : EventHandler<System.Runtime.Serialization.SafeSerializationEventArgs> 
[<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> 
Protected Custom Event SerializeObjectState As EventHandler(Of SafeSerializationEventArgs) 

Event Type

Atributy

Poznámky

Objekt stavu výjimky implementuje ISafeSerializationData rozhraní .

Při přihlášení k odběru SerializeObjectState události je výjimka deserializována a vytvořena 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 poté upozorněna, aby bylo možné 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 rámci sady oprávnění, ve které pracuje, ale nemůže spouštět, volat, odvozovat nebo obsahovat kritický kód.

SerializeObjectState Pokud není událost přihlášena k odběru, deserializace proběhne jako obvykle pomocí konstruktoruException.

Obvykle je obslužná rutina události SerializeObjectState přidána do konstruktoru výjimky pro zajištění jeho serializace. Ale protože konstruktor není spuštěn 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. Abyste tomu předešli, měli byste také přidat obslužnou rutinu SerializeObjectState události do ISafeSerializationData.CompleteDeserialization metody . Obrázek najdete v části Příklady.

Poznámky pro dědice

Pokud je tato událost přihlášena k odběru a používá, všechny odvozené typy, které následují v hierarchii dědičnosti musí implementovat stejný mechanismus serializace.

Platí pro