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 un'eccezione viene serializzata per creare un oggetto di stato eccezione contenente i dati serializzati relativi all'eccezione.

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 evento

Attributi

Commenti

L'oggetto stato dell'eccezione implementa l'interfaccia ISafeSerializationData .

Quando l'evento viene sottoscritto, l'eccezione SerializeObjectState viene deserializzata e creata come eccezione vuota. Il costruttore dell'eccezione non viene eseguito e lo stato dell'eccezione viene deserializzato. Il CompleteDeserialization metodo di callback dell'oggetto stato dell'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 viene 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 specificarne 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