Ler em inglês

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.

C#
protected event EventHandler<System.Runtime.Serialization.SafeSerializationEventArgs>? SerializeObjectState;
C#
[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;
C#
protected event EventHandler<System.Runtime.Serialization.SafeSerializationEventArgs> SerializeObjectState;

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

Produto Versões (Obsoleto)
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5 (6, 7, 8, 9)
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1