Teilen über


Exception.SerializeObjectState Ereignis

Definition

Achtung

BinaryFormatter serialization is obsolete and should not be used. See https://aka.ms/binaryformatter for more information.

Tritt auf, wenn eine Ausnahme serialisiert wird, um ein Ausnahmezustandsobjekt mit serialisierten Daten über die Ausnahme zu erstellen.

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) 

Ereignistyp

Attribute

Hinweise

Das Ausnahmezustandsobjekt implementiert die ISafeSerializationData -Schnittstelle.

Wenn das SerializeObjectState Ereignis abonniert wird, wird die Ausnahme deserialisiert und als leere Ausnahme erstellt. Der Konstruktor der Ausnahme wird nicht ausgeführt, und der Ausnahmezustand wird ebenfalls deserialisiert. Die CompleteDeserialization Rückrufmethode des Ausnahmezustandsobjekts wird dann benachrichtigt, damit deserialisierte Daten in die leere Ausnahme gepusht werden können.

Das SerializeObjectState Ereignis ermöglicht transparenten Ausnahmetypen das Serialisieren und Deserialisieren von Ausnahmedaten. Transparenter Code kann Befehle innerhalb der Grenzen des Berechtigungssatzes ausführen, in dem er ausgeführt wird, jedoch nicht ausführen, aufrufen, von abgeleitet werden oder kritischen Code enthalten.

Wenn das SerializeObjectState Ereignis nicht abonniert wird, erfolgt die Deserialisierung wie üblich mithilfe des Exception -Konstruktors.

In der Regel wird im Konstruktor der Ausnahme ein Handler für das SerializeObjectState Ereignis hinzugefügt, um die Serialisierung bereitzustellen. Da der Konstruktor jedoch nicht ausgeführt wird, wenn der SerializeObjectState Ereignishandler ausgeführt wird, kann das Serialisieren einer deserialisierten Ausnahme eine SerializationException Ausnahme auslösen, wenn Sie versuchen, die Ausnahme zu deserialisieren. Um dies zu vermeiden, sollten Sie auch den Handler für das SerializeObjectState -Ereignis in der ISafeSerializationData.CompleteDeserialization -Methode hinzufügen. Eine Abbildung finden Sie im Abschnitt Beispiele.

Hinweise für Vererber

Wenn dieses Ereignis abonniert und verwendet wird, müssen alle abgeleiteten Typen, die in der Vererbungshierarchie folgen, denselben Serialisierungsmechanismus implementieren.

Gilt für: