ObjectManager.RegisterObject 方法

定义

在反序列化对象时注册对象。

重载

名称 说明
RegisterObject(Object, Int64)

在反序列化对象时注册对象,并将其与 objectID它关联。

RegisterObject(Object, Int64, SerializationInfo)

在反序列化对象时注册对象,将其与 objectID对象关联,并记录 SerializationInfo 与之一起使用的对象。

RegisterObject(Object, Int64, SerializationInfo, Int64, MemberInfo)

在反序列化对象、将其与 objectID对象关联并记录 SerializationInfo时注册对象的成员。

RegisterObject(Object, Int64, SerializationInfo, Int64, MemberInfo, Int32[])

在反序列化数组、将其关联 objectID并记录 SerializationInfo时,注册对象中包含的数组的成员。

RegisterObject(Object, Int64)

在反序列化对象时注册对象,并将其与 objectID它关联。

public:
 virtual void RegisterObject(System::Object ^ obj, long objectID);
public virtual void RegisterObject(object obj, long objectID);
[System.Security.SecurityCritical]
public virtual void RegisterObject(object obj, long objectID);
abstract member RegisterObject : obj * int64 -> unit
override this.RegisterObject : obj * int64 -> unit
[<System.Security.SecurityCritical>]
abstract member RegisterObject : obj * int64 -> unit
override this.RegisterObject : obj * int64 -> unit
Public Overridable Sub RegisterObject (obj As Object, objectID As Long)

参数

obj
Object

要注册的对象。

objectID
Int64

要注册的对象 ID。

属性

例外

参数 objnull.

参数 objectID 小于或等于零。

objectID该对象已被注册为其他obj对象。

注解

ObjectManager 保留有关对象及其 ID 的信息。 稍后在反序列化期间, GetObject 可用于确定特定对象 ID 是否已反序列化,还是对尚未反序列化的对象进行正向引用。

适用于

RegisterObject(Object, Int64, SerializationInfo)

在反序列化对象时注册对象,将其与 objectID对象关联,并记录 SerializationInfo 与之一起使用的对象。

public:
 void RegisterObject(System::Object ^ obj, long objectID, System::Runtime::Serialization::SerializationInfo ^ info);
public void RegisterObject(object obj, long objectID, System.Runtime.Serialization.SerializationInfo info);
[System.Security.SecurityCritical]
public void RegisterObject(object obj, long objectID, System.Runtime.Serialization.SerializationInfo info);
member this.RegisterObject : obj * int64 * System.Runtime.Serialization.SerializationInfo -> unit
[<System.Security.SecurityCritical>]
member this.RegisterObject : obj * int64 * System.Runtime.Serialization.SerializationInfo -> unit
Public Sub RegisterObject (obj As Object, objectID As Long, info As SerializationInfo)

参数

obj
Object

要注册的对象。

objectID
Int64

要注册的对象 ID。

info
SerializationInfo

SerializationInfo实现objISerializable或具有 ISerializationSurrogate. info 将使用任何必需的修复信息完成,然后在该对象完成时传递给所需对象。

属性

例外

参数 objnull.

参数 objectID 小于或等于零。

objectID该对象已被注册为其他obj对象。

注解

ObjectManager 保留有关对象及其 ID 的信息。 稍后在反序列化期间,可以使用 GetObject 它来发现特定对象 ID 是否已反序列化,或者它是对尚未反序列化的对象的正向引用。

适用于

RegisterObject(Object, Int64, SerializationInfo, Int64, MemberInfo)

在反序列化对象、将其与 objectID对象关联并记录 SerializationInfo时注册对象的成员。

public:
 void RegisterObject(System::Object ^ obj, long objectID, System::Runtime::Serialization::SerializationInfo ^ info, long idOfContainingObj, System::Reflection::MemberInfo ^ member);
public void RegisterObject(object obj, long objectID, System.Runtime.Serialization.SerializationInfo info, long idOfContainingObj, System.Reflection.MemberInfo member);
[System.Security.SecurityCritical]
public void RegisterObject(object obj, long objectID, System.Runtime.Serialization.SerializationInfo info, long idOfContainingObj, System.Reflection.MemberInfo member);
member this.RegisterObject : obj * int64 * System.Runtime.Serialization.SerializationInfo * int64 * System.Reflection.MemberInfo -> unit
[<System.Security.SecurityCritical>]
member this.RegisterObject : obj * int64 * System.Runtime.Serialization.SerializationInfo * int64 * System.Reflection.MemberInfo -> unit
Public Sub RegisterObject (obj As Object, objectID As Long, info As SerializationInfo, idOfContainingObj As Long, member As MemberInfo)

参数

obj
Object

要注册的对象。

objectID
Int64

要注册的对象 ID。

info
SerializationInfo

SerializationInfo实现objISerializable或具有 ISerializationSurrogate. info 将使用任何必需的修复信息完成,然后在该对象完成时传递给所需对象。

idOfContainingObj
Int64

包含 obj. 的对象 ID。 仅当为值类型时 obj ,才需要此参数。

member
MemberInfo

包含对象中存在的 obj 字段。 仅当为值类型时 obj ,此参数才有意义。

属性

例外

参数 objnull.

参数 objectID 小于或等于零。

objectID尚未为对象obj注册,或者member不是且不是memberFieldInfonull

注解

如果需要提供memberidOfContainingObj参数,前提是修复ValueType是在对象上ValueType执行修复的方式。obj 用于存储信息 ValueType 的空间与包含的对象一起内联分配。 但是,如果将 ValueType 装箱注册到该 ObjectManager框,它将失去与其包含对象的连接。 为了保证修复发生在存储在包含对象的实例 ValueType 中,而不是在装箱实例中,保留 ObjectManager 一些其他信息。

ObjectManager 保留有关对象及其 ID 的信息。 稍后在反序列化期间, GetObject 可用于发现特定对象 ID 是否已反序列化,还是对尚未反序列化的对象进行正向引用。

适用于

RegisterObject(Object, Int64, SerializationInfo, Int64, MemberInfo, Int32[])

在反序列化数组、将其关联 objectID并记录 SerializationInfo时,注册对象中包含的数组的成员。

public:
 void RegisterObject(System::Object ^ obj, long objectID, System::Runtime::Serialization::SerializationInfo ^ info, long idOfContainingObj, System::Reflection::MemberInfo ^ member, cli::array <int> ^ arrayIndex);
public void RegisterObject(object obj, long objectID, System.Runtime.Serialization.SerializationInfo info, long idOfContainingObj, System.Reflection.MemberInfo member, int[] arrayIndex);
[System.Security.SecurityCritical]
public void RegisterObject(object obj, long objectID, System.Runtime.Serialization.SerializationInfo info, long idOfContainingObj, System.Reflection.MemberInfo member, int[] arrayIndex);
member this.RegisterObject : obj * int64 * System.Runtime.Serialization.SerializationInfo * int64 * System.Reflection.MemberInfo * int[] -> unit
[<System.Security.SecurityCritical>]
member this.RegisterObject : obj * int64 * System.Runtime.Serialization.SerializationInfo * int64 * System.Reflection.MemberInfo * int[] -> unit
Public Sub RegisterObject (obj As Object, objectID As Long, info As SerializationInfo, idOfContainingObj As Long, member As MemberInfo, arrayIndex As Integer())

参数

obj
Object

要注册的对象。

objectID
Int64

要注册的对象 ID。

info
SerializationInfo

SerializationInfo实现objISerializable或具有 ISerializationSurrogate. info 将使用任何必需的修复信息完成,然后在该对象完成时传递给所需对象。

idOfContainingObj
Int64

包含 obj. 的对象 ID。 仅当为值类型时 obj ,才需要此参数。

member
MemberInfo

包含对象中存在的 obj 字段。 仅当为值类型时 obj ,此参数才有意义。

arrayIndex
Int32[]

如果 obj 为数组的一 ValueType 个和一个成员, arrayIndex 则包含该数组中存在的 obj 索引。 如果 不是数组的成员,则忽略 />。

属性

例外

参数 objnull.

参数 objectID 小于或等于零。

objectID尚未为对象obj注册,或者member不是且不是memberFieldInfonull

注解

如果需要提供memberidOfContainingObj参数,前提是修复ValueType是在对象上ValueType执行修复的方式。obj 用于存储信息 ValueType 的空间与包含的对象一起内联分配。 但是,如果将 ValueType 装箱注册到该 ObjectManager框,它将失去与其包含对象的连接。 为了保证修复发生在存储在包含对象的实例 ValueType 中,而不是在装箱实例中,保留 ObjectManager 一些其他信息。

ObjectManager 保留有关对象及其 ID 的信息。 稍后在反序列化期间, GetObject 可用于发现特定对象 ID 是否已反序列化,还是对尚未反序列化的对象进行正向引用。

适用于