Exception.SerializeObjectState 事件

定义

注意

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

序列化异常以创建包含有关异常的序列化数据的异常状态对象时发生。

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) 

事件类型

属性

注解

异常状态对象实现 ISafeSerializationData 接口。

SerializeObjectState订阅事件时,异常将反序列化并创建为空异常。 异常的构造函数未运行,异常状态也反序列化。 CompleteDeserialization然后通知异常状态对象的回调方法,以便它可以将反序列化的数据推送到空异常中。

SerializeObjectState 事件使透明异常类型能够序列化和反序列化异常数据。 透明代码可以在运行权限集的边界内执行命令,但不能执行、调用、派生或包含关键代码。

如果未订阅事件 SerializeObjectState ,则使用 Exception 构造函数像往常一样进行反序列化。

通常,在异常的构造函数中添加事件的处理程序 SerializeObjectState ,以提供其序列化。 但是,由于事件处理程序执行时 SerializeObjectState 不会执行构造函数,因此在尝试反序列化异常时序列化反序列化异常可能会引发 SerializationException 异常。 为了避免这种情况,还应在方法中添加SerializeObjectState事件的ISafeSerializationData.CompleteDeserialization处理程序。 有关插图,请参阅“示例”部分。

继承者说明

如果订阅和使用此事件,则继承层次结构中后面的所有派生类型都必须实现相同的序列化机制。

适用于