Exception.SerializeObjectState Evento

Definición

Precaución

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

Se produce cuando se serializa una excepción para crear un objeto de estado de excepción que contiene datos serializados sobre la excepción.

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) 

Tipo de evento

Atributos

Comentarios

El objeto de estado de excepción implementa la ISafeSerializationData interfaz .

Cuando se suscribe el SerializeObjectState evento, la excepción se deserializa y se crea como una excepción vacía. El constructor de la excepción no se ejecuta y el estado de excepción también se deserializa. A continuación, se notifica al CompleteDeserialization método de devolución de llamada del objeto de estado de excepción para que pueda insertar datos deserializados en la excepción vacía.

El SerializeObjectState evento permite que los tipos de excepciones transparentes serialicen y deserialicen los datos de excepción. El código transparente puede ejecutar comandos dentro de los límites del conjunto de permisos en el que funciona, pero no puede ejecutar, llamar, derivar de o contener código crítico.

Si el evento no está suscrito a , la SerializeObjectState deserialización se produce como de costumbre mediante el Exception constructor .

Normalmente, se agrega un controlador para el SerializeObjectState evento en el constructor de la excepción para proporcionar su serialización. Pero dado que el constructor no se ejecuta cuando se ejecuta el SerializeObjectState controlador de eventos, serializar una excepción deserializada puede producir una SerializationException excepción al intentar deserializar la excepción. Para evitar esto, también debe agregar el controlador para el SerializeObjectState evento en el ISafeSerializationData.CompleteDeserialization método . Consulte la sección Ejemplos para obtener una ilustración.

Notas a los desarrolladores de herederos

Si este evento se suscribe a y se usa, todos los tipos derivados siguientes en la jerarquía de herencia deben implementar el mismo mecanismo de serialización.

Se aplica a