Exception.SerializeObjectState Evento
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Cuidado
BinaryFormatter serialization is obsolete and should not be used. See https://aka.ms/binaryformatter for more information.
Ocorre quando uma exceção é serializada para criar um objeto de estado de exceção que contém dados serializados sobre a exceção.
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
Comentários
O objeto de estado de exceção implementa a ISafeSerializationData interface .
Quando o SerializeObjectState evento é inscrito, a exceção é desserializada e criada como uma exceção vazia. O construtor da exceção não é executado e o estado de exceção também é desserializado. O CompleteDeserialization método de retorno de chamada do objeto de estado de exceção é notificado para que ele possa enviar dados desserializados por push para a exceção vazia.
O SerializeObjectState evento permite que tipos de exceção transparentes serializem e desserializem dados de exceção. O código transparente pode executar comandos dentro dos limites do conjunto de permissões em que está operando, mas não pode executar, chamar, derivar ou conter código crítico.
Se o SerializeObjectState evento não estiver inscrito, a desserialização ocorrerá como de costume usando o Exception construtor .
Normalmente, um manipulador para o SerializeObjectState evento é adicionado ao construtor da exceção para fornecer sua serialização. Mas como o construtor não é executado quando o SerializeObjectState manipulador de eventos é executado, serializar uma exceção desserializada pode gerar uma SerializationException exceção quando você tenta desserializar a exceção. Para evitar isso, você também deve adicionar o manipulador para o SerializeObjectState evento no ISafeSerializationData.CompleteDeserialization método . Consulte a seção Exemplos para obter uma ilustração.
Notas aos Herdeiros
Se esse evento for inscrito e usado, todos os tipos derivados que seguem na hierarquia de herança deverão implementar o mesmo mecanismo de serialização.