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 保留物件及其識別碼的相關資訊。 稍後在還原序列化期間, GetObject 可用來判斷特定物件識別碼是否已還原序列化,或它是否為尚未還原序列化之物件的正向參考。
適用於
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,用於 obj
實作 ISerializable 或具有 ISerializationSurrogate 時。 info
將使用任何必要的修復資訊來完成,然後在必要的物件完成時傳遞給該物件。
- 屬性
例外狀況
obj
參數為 null
。
objectID
參數小於或等於零。
objectID
已經為 obj
以外的物件進行登錄。
備註
ObjectManager 保留物件及其識別碼的相關資訊。 稍後在還原序列化期間,您可以使用 GetObject 來探索特定物件識別碼是否已還原序列化,或者是否為尚未還原序列化之物件的正向參考。
適用於
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);
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,用於 obj
實作 ISerializable 或具有 ISerializationSurrogate 時。 info
將使用任何必要的修復資訊來完成,然後在必要的物件完成時傳遞給該物件。
- idOfContainingObj
- Int64
包含 obj
的物件 ID。 只有當 obj
是實值型別時,才需要這個參數。
- member
- MemberInfo
包含物件中的欄位,其中有 obj
存在。 只有當 obj
是實值型別時,這個參數才有意義。
- 屬性
例外狀況
obj
參數為 null
。
objectID
參數小於或等於零。
objectID
已經為 obj
以外的物件進行登錄,或者 member
不是 FieldInfo,而且 member
不是 null
。
備註
如果 obj
是 ,您必須提供 member
和 idOfContainingObj
參數, ValueType 因為修正在 物件上 ValueType 執行的方式。 儲存 資訊 ValueType 的空間會以內嵌方式配置,內嵌其包含的物件。 不過,當 Boxed 要向 ObjectManager 註冊時 ValueType ,它會失去與其包含物件的連接。 為了保證修正發生在儲存在包含物件的 實例 ValueType 中,而不是在 Boxed 實例中,會 ObjectManager 保留一些其他資訊。
ObjectManager 保留物件及其識別碼的相關資訊。 稍後在還原序列化期間, GetObject 可用來探索特定物件識別碼是否已還原序列化,或它是否為尚未還原序列化之物件的正向參考。
適用於
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);
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,用於 obj
實作 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
。
備註
如果 obj
是 ,您必須提供 member
和 idOfContainingObj
參數, ValueType 因為修正在 物件上 ValueType 執行的方式。 儲存 資訊 ValueType 的空間會以內嵌方式配置,內嵌其包含的物件。 不過,當 Boxed 要向 ObjectManager 註冊時 ValueType ,它會失去與其包含物件的連接。 為了保證修正發生在儲存在包含物件的 實例 ValueType 中,而不是在 Boxed 實例中,會 ObjectManager 保留一些其他資訊。
ObjectManager 保留物件及其識別碼的相關資訊。 稍後在還原序列化期間, GetObject 可用來探索特定物件識別碼是否已還原序列化,或它是否為尚未還原序列化之物件的正向參考。