Exception.SerializeObjectState Händelse

Definition

Varning

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

Inträffar när ett undantag serialiseras för att skapa ett undantagstillståndsobjekt som innehåller serialiserade data om undantaget.

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) 

Händelsetyp

Attribut

Kommentarer

Undantagstillståndsobjektet implementerar ISafeSerializationData gränssnittet.

När händelsen SerializeObjectState prenumereras på deserialiseras undantaget och skapas som ett tomt undantag. Undantagets konstruktor körs inte och undantagstillståndet deserialiseras också. Återanropsmetoden CompleteDeserialization för undantagstillståndsobjektet meddelas sedan så att den kan skicka deserialiserade data till det tomma undantaget.

Händelsen SerializeObjectState gör det möjligt för transparenta undantagstyper att serialisera och deserialisera undantagsdata. Transparent kod kan köra kommandon inom gränserna för den behörighetsuppsättning som den arbetar inom, men kan inte köra, anropa, härleda från eller innehålla kritisk kod.

Om händelsen SerializeObjectState inte prenumererar på sker deserialiseringen som vanligt med konstruktorn Exception .

Vanligtvis läggs en hanterare för SerializeObjectState händelsen till i undantagets konstruktor för att tillhandahålla dess serialisering. Men eftersom konstruktorn inte körs när SerializeObjectState händelsehanteraren körs kan serialisering av ett deserialiserat undantag utlösa ett SerializationException undantag när du försöker deserialisera undantaget. För att undvika detta bör du också lägga till hanteraren för SerializeObjectState händelsen i ISafeSerializationData.CompleteDeserialization -metoden. Se avsnittet Exempel för en bild.

Anteckningar till arvingar

Om den här händelsen prenumereras på och används måste alla härledda typer som följer i arvshierarkin implementera samma serialiseringsmekanism.

Gäller för