Exception.SerializeObjectState Ereignis
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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 Ausnahmestatusobjekt zu erstellen, das serialisierte Daten zu der Ausnahme enthält.
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)
Ereignistyp
- Attribute
Hinweise
Das Ausnahmestatusobjekt 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 Ausnahmestatusobjekts wird dann benachrichtigt, damit sie deserialisierte Daten in die leere Ausnahme übertragen kann.
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, aber nicht ausgeführt, aufgerufen, abgeleitet oder kritischen Code enthalten.
Wenn das SerializeObjectState Ereignis nicht abonniert ist, erfolgt die Deserialisierung wie gewohnt mithilfe des Exception Konstruktors.
In der Regel wird ein Handler für das Ereignis im Konstruktor der SerializeObjectState Ausnahme hinzugefügt, um die Serialisierung bereitzustellen. Da der Konstruktor jedoch nicht ausgeführt wird, wenn der SerializeObjectState Ereignishandler ausgeführt wird, kann die Serialisierung 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.