Exception.SerializeObjectState Zdarzenie
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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.