Partager via


Exception.SerializeObjectState Événement

Définition

Attention

BinaryFormatter serialization is obsolete and should not be used. See https://aka.ms/binaryformatter for more information.

Se produit quand une exception est sérialisée pour créer un objet d'état d'exception qui contient des données sérialisées concernant l'exception.

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) 

Type d'événement

Attributs

Remarques

L’objet d’état d’exception implémente l’interface ISafeSerializationData .

Lorsque l’événement SerializeObjectState est abonné à, l’exception est désérialisée et créée en tant qu’exception vide. Le constructeur de l’exception n’est pas exécuté et l’état de l’exception est également désérialisé. La CompleteDeserialization méthode de rappel de l’objet d’état d’exception est ensuite avertie afin qu’elle puisse envoyer des données désérialisées dans l’exception vide.

L’événement SerializeObjectState active les types d’exceptions transparents pour sérialiser et désérialiser les données d’exception. Le code transparent peut exécuter des commandes dans les limites du jeu d’autorisations dans lequel il fonctionne, mais ne peut pas exécuter, appeler, dériver ou contenir du code critique.

Si l’événement SerializeObjectState n’est pas abonné à, la désérialisation se produit comme d’habitude à l’aide du Exception constructeur.

En règle générale, un gestionnaire de l’événement SerializeObjectState est ajouté dans le constructeur de l’exception pour assurer sa sérialisation. Mais comme le constructeur n’est pas exécuté lorsque le gestionnaire d’événements s’exécute, la SerializeObjectState sérialisation d’une exception désérialisée peut lever une SerializationException exception lorsque vous essayez de désérialiser l’exception. Pour éviter cela, vous devez également ajouter le gestionnaire de l’événement SerializeObjectState dans la ISafeSerializationData.CompleteDeserialization méthode . Pour obtenir une illustration, consultez la section Exemples.

Notes pour les héritiers

Si cet événement est abonné et utilisé, tous les types dérivés qui suivent dans la hiérarchie d’héritage doivent implémenter le même mécanisme de sérialisation.

S’applique à