Exception.SerializeObjectState Händelse
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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.