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 可用來探索特定對象標識碼是否已還原串行化,或是否為尚未還原串行化之物件的正向參考。