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)
- Source:
- ObjectManager.cs
- Source:
- ObjectManager.cs
- Source:
- ObjectManager.cs
在反序列化对象时注册该对象,并将其与 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)
- Source:
- ObjectManager.cs
- Source:
- ObjectManager.cs
- Source:
- ObjectManager.cs
在反序列化对象时注册该对象,同时将其与 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
当 obj
实现 SerializationInfo 或具有 ISerializable 时使用的 ISerializationSurrogate。
info
将用任何所需的链接地址信息来完成,然后在所需的对象完成时传递给该对象。
- 属性
例外
obj
参数为 null
。
objectID
参数小于或等于零。
objectID
已为 obj
以外的对象进行了注册。
注解
ObjectManager 保留有关对象及其 ID 的信息。 稍后在反序列化期间,可以使用 GetObject 来发现特定对象 ID 是否已反序列化,或者它是对尚未反序列化的对象的向前引用。
适用于
RegisterObject(Object, Int64, SerializationInfo, Int64, MemberInfo)
- Source:
- ObjectManager.cs
- Source:
- ObjectManager.cs
- Source:
- ObjectManager.cs
在对象成员反序列化时注册该对象成员,同时将其与 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);
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
当 obj
实现 SerializationInfo 或具有 ISerializable 时使用的 ISerializationSurrogate。
info
将用任何所需的链接地址信息来完成,然后在所需的对象完成时传递给该对象。
- idOfContainingObj
- Int64
包含 obj
的对象的 ID。 仅当 obj
是值类型时才需要此参数。
- member
- MemberInfo
obj
所在的包含对象中的字段。 仅当 obj
是值类型时此参数才有意义。
- 属性
例外
obj
参数为 null
。
objectID
参数小于或等于零。
objectID
已经为 obj
之外的对象注册,或者 member
不为 FieldInfo 且 member
不为 null
。
注解
如果 是 ,ValueType则需提供 member
和 idOfContainingObj
参数,因为对ValueType对象执行修复的方式。obj
存储 信息的空间 ValueType 与其包含的对象一起内联分配。 但是,当 ValueType 装箱以向 注册到 ObjectManager时,它将失去与其包含对象的连接。 为了保证修复发生在存储于包含 对象的 实例 ValueType 中,而不是在装箱实例中,保留 ObjectManager 一些其他信息。
ObjectManager 保留有关对象及其 ID 的信息。 稍后在反序列化期间, GetObject 可用于发现特定对象 ID 是否已反序列化,或者它是否是对尚未反序列化的对象的向前引用。
适用于
RegisterObject(Object, Int64, SerializationInfo, Int64, MemberInfo, Int32[])
- Source:
- ObjectManager.cs
- Source:
- ObjectManager.cs
- Source:
- ObjectManager.cs
在对象中包含的数组的成员进行反序列化时注册该成员,同时将其与 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);
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
当 obj
实现 SerializationInfo 或具有 ISerializable 时使用的 ISerializationSurrogate。
info
将用任何所需的链接地址信息来完成,然后在所需的对象完成时传递给该对象。
- idOfContainingObj
- Int64
包含 obj
的对象的 ID。 仅当 obj
是值类型时才需要此参数。
- member
- MemberInfo
obj
所在的包含对象中的字段。 仅当 obj
是值类型时此参数才有意义。
- arrayIndex
- Int32[]
如果 obj
为 ValueType 和数组的成员,arrayIndex
则包含 obj
所在数组中的索引。 如果 arrayIndex
不是同时为 ValueType 和数组成员,则将忽略 obj
。
- 属性
例外
obj
参数为 null
。
objectID
参数小于或等于零。
objectID
已经为 obj
之外的对象注册,或者 member
不是 FieldInfo 且 member
不是 null
。
注解
如果 是 ,ValueType则需提供 member
和 idOfContainingObj
参数,因为对ValueType对象执行修复的方式。obj
存储 信息的空间 ValueType 与其包含的对象一起内联分配。 但是,当 ValueType 装箱以向 注册到 ObjectManager时,它将失去与其包含对象的连接。 为了保证修复发生在存储于包含 对象的 实例 ValueType 中,而不是在装箱实例中,保留 ObjectManager 一些其他信息。
ObjectManager 保留有关对象及其 ID 的信息。 稍后在反序列化期间, GetObject 可用于发现特定对象 ID 是否已反序列化,或者它是否是对尚未反序列化的对象的向前引用。