Exception.SerializeObjectState Evento
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Precaución
BinaryFormatter serialization is obsolete and should not be used. See https://aka.ms/binaryformatter for more information.
Ocurre cuando una excepción se serializa para crear un objeto de estado de excepción que contenga datos serializados sobre la excepción.
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)
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 CompleteDeserialization continuación, se notifica al 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 a los tipos de excepción transparentes serializar y deserializar los datos de excepción. El código transparente puede ejecutar comandos dentro de los límites del conjunto de permisos en el que está funcionando, pero no puede ejecutar, llamar, derivar de o contener código crítico.
Si el evento no está suscrito, 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, la serialización de 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 está suscrito a y se usa, todos los tipos derivados que siguen en la jerarquía de herencia deben implementar el mismo mecanismo de serialización.