Exception.SerializeObjectState Evento

Definizione

Attenzione

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

Si verifica quando viene serializzata un'eccezione per creare un oggetto stato dell'eccezione contenente dati serializzati sull'eccezione.

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;
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}")>]
member this.SerializeObjectState : EventHandler<System.Runtime.Serialization.SafeSerializationEventArgs> 
member this.SerializeObjectState : EventHandler<System.Runtime.Serialization.SafeSerializationEventArgs> 
Protected Custom Event SerializeObjectState As EventHandler(Of SafeSerializationEventArgs) 

Tipo evento

Attributi

Commenti

L'oggetto stato eccezione implementa l'interfaccia ISafeSerializationData .

Quando l'evento SerializeObjectState viene sottoscritto, l'eccezione viene deserializzata e creata come eccezione vuota. Il costruttore dell'eccezione non viene eseguito e anche lo stato dell'eccezione viene deserializzato. Il CompleteDeserialization metodo di callback dell'oggetto stato eccezione riceve quindi una notifica in modo che possa eseguire il push dei dati deserializzati nell'eccezione vuota.

L'evento SerializeObjectState consente ai tipi di eccezione trasparenti di serializzare e deserializzare i dati delle eccezioni. Il codice trasparente può eseguire comandi all'interno dei limiti del set di autorizzazioni in cui opera, ma non può eseguire, chiamare, derivare o contenere codice critico.

Se l'evento SerializeObjectState non è sottoscritto, la deserializzazione viene eseguita come di consueto usando il Exception costruttore .

In genere, un gestore per l'evento SerializeObjectState viene aggiunto nel costruttore dell'eccezione per fornire la serializzazione. Tuttavia, poiché il costruttore non viene eseguito quando viene eseguito il SerializeObjectState gestore eventi, la serializzazione di un'eccezione deserializzata può generare un'eccezione SerializationException quando si tenta di deserializzare l'eccezione. Per evitare questo problema, è necessario aggiungere anche il gestore per l'evento SerializeObjectState nel ISafeSerializationData.CompleteDeserialization metodo . Per un'illustrazione, vedere la sezione Esempi.

Note per gli eredi

Se questo evento viene sottoscritto e usato, tutti i tipi derivati che seguono nella gerarchia di ereditarietà devono implementare lo stesso meccanismo di serializzazione.

Si applica a