Udostępnij za pośrednictwem


Exception.SerializeObjectState Zdarzenie

Definicja

Przestroga

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

Występuje, gdy wyjątek jest serializowany w celu utworzenia obiektu stanu wyjątku, który zawiera serializowane dane dotyczące wyjątku.

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) 

Typ zdarzenia

Atrybuty

Uwagi

Obiekt stanu wyjątku ISafeSerializationData implementuje interfejs.

SerializeObjectState Gdy zdarzenie jest subskrybowane, wyjątek jest deserializowany i tworzony jako pusty wyjątek. Konstruktor wyjątku nie jest uruchamiany, a stan wyjątku jest również deserializowany. CompleteDeserialization Metoda wywołania zwrotnego obiektu stanu wyjątku jest następnie powiadamiana, aby umożliwić wypchnięcie deserializowanych danych do pustego wyjątku.

Zdarzenie SerializeObjectState umożliwia przezroczyste typy wyjątków serializacji i deserializacji danych wyjątków. Przezroczysty kod może wykonywać polecenia w granicach zestawu uprawnień, w ramach którego działa, ale nie może wykonywać, wywoływać, pochodzić z lub zawierać kod krytyczny.

SerializeObjectState Jeśli zdarzenie nie jest subskrybowane, deserializacja występuje jak zwykle przy użyciu konstruktoraException.

Zazwyczaj program obsługi zdarzenia SerializeObjectState jest dodawany w konstruktorze wyjątku w celu zapewnienia jego serializacji. Ale ponieważ konstruktor nie jest wykonywany podczas SerializeObjectState wykonywania programu obsługi zdarzeń, serializowanie deserializacji wyjątku może zgłosić SerializationException wyjątek podczas próby deserializacji wyjątku. Aby tego uniknąć, należy również dodać procedurę obsługi dla SerializeObjectState zdarzenia w metodzie ISafeSerializationData.CompleteDeserialization . Zobacz sekcję Przykłady, aby zapoznać się z ilustracją.

Uwagi dotyczące dziedziczenia

Jeśli to zdarzenie jest subskrybowane i używane, wszystkie typy pochodne, które następują w hierarchii dziedziczenia, muszą zaimplementować ten sam mechanizm serializacji.

Dotyczy