Exception.SerializeObjectState Evento
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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;
member this.SerializeObjectState : EventHandler<System.Runtime.Serialization.SafeSerializationEventArgs>
Protected Custom Event SerializeObjectState As EventHandler(Of SafeSerializationEventArgs)
Tipo de Evento
Observações
O objeto de estado de exceção implementa a ISafeSerializationData interface.
Quando o SerializeObjectState evento é subscrito, a exceção é desserializada e criada como uma exceção vazia. O construtor da exceção não é executado, e o estado da exceção também é desserializado. O CompleteDeserialization método de callback do objeto de estado de exceção é então notificado para que possa empurrar dados desserializados 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 opera, mas não pode executar, chamar, derivar ou conter código crítico.
Se o SerializeObjectState evento não estiver subscrito, a desserialização ocorre normalmente usando o Exception construtor.
Normalmente, um handler para o SerializeObjectState evento é adicionado no construtor da exceção para permitir a sua serialização. Mas como o construtor não é executado quando o SerializeObjectState handler de eventos é executado, serializar uma exceção desserializada pode lançar uma SerializationException exceção quando tentar desserializar a exceção. Para evitar isto, deve também adicionar o handler do SerializeObjectState evento no ISafeSerializationData.CompleteDeserialization método. Veja a secção de Exemplos para uma ilustração.
Notas para Herdeiros
Se este evento for subscrito e utilizado, todos os tipos derivados que seguem a hierarquia de herança devem implementar o mesmo mecanismo de serialização.