Compartilhar via


Exception.SerializeObjectState Evento

Definição

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.

Aplica-se a