ObjectManager.RegisterObject 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
在反序列化对象时注册对象。
重载
| 名称 | 说明 |
|---|---|
| RegisterObject(Object, Int64) |
在反序列化对象时注册对象,并将其与 |
| RegisterObject(Object, Int64, SerializationInfo) |
在反序列化对象时注册对象,将其与 |
| RegisterObject(Object, Int64, SerializationInfo, Int64, MemberInfo) |
在反序列化对象、将其与 |
| RegisterObject(Object, Int64, SerializationInfo, Int64, MemberInfo, Int32[]) |
在反序列化数组、将其关联 |
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。
- 属性
例外
参数 obj 为 null.
参数 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 将使用任何必需的修复信息完成,然后在该对象完成时传递给所需对象。
- 属性
例外
参数 obj 为 null.
参数 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 ,此参数才有意义。
- 属性
例外
参数 obj 为 null.
参数 objectID 小于或等于零。
objectID尚未为对象obj注册,或者member不是且不是memberFieldInfonull。
注解
如果需要提供member和idOfContainingObj参数,前提是修复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 ,此参数才有意义。
- 属性
例外
参数 obj 为 null.
参数 objectID 小于或等于零。
objectID尚未为对象obj注册,或者member不是且不是memberFieldInfonull。
注解
如果需要提供member和idOfContainingObj参数,前提是修复ValueType是在对象上ValueType执行修复的方式。obj 用于存储信息 ValueType 的空间与包含的对象一起内联分配。 但是,如果将 ValueType 装箱注册到该 ObjectManager框,它将失去与其包含对象的连接。 为了保证修复发生在存储在包含对象的实例 ValueType 中,而不是在装箱实例中,保留 ObjectManager 一些其他信息。
ObjectManager 保留有关对象及其 ID 的信息。 稍后在反序列化期间, GetObject 可用于发现特定对象 ID 是否已反序列化,还是对尚未反序列化的对象进行正向引用。