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。

屬性

例外狀況

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 是 ,您必須提供 memberidOfContainingObj 參數, 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[]

如果 objValueType 並且是陣列的成員,arrayIndex 會包含該陣列 (有 obj 存在) 中的索引。 如果 arrayIndex 不是 ValueType 並且不是陣列的成員,則會忽略 obj

屬性

例外狀況

obj 參數為 null

objectID 參數小於或等於零。

objectID 已經為 obj 以外的物件進行登錄,或者 member 不是 FieldInfo,而且 member 不是 null

備註

如果 obj 是 ,您必須提供 memberidOfContainingObj 參數, ValueType 因為修正在 物件上 ValueType 執行的方式。 儲存 資訊 ValueType 的空間會以內嵌方式配置,內嵌其包含的物件。 不過,當 Boxed 要向 ObjectManager 註冊時 ValueType ,它會失去與其包含物件的連接。 為了保證修正發生在儲存在包含物件的 實例 ValueType 中,而不是在 Boxed 實例中,會 ObjectManager 保留一些其他資訊。

ObjectManager 保留物件及其識別碼的相關資訊。 稍後在還原序列化期間, GetObject 可用來探索特定物件識別碼是否已還原序列化,或它是否為尚未還原序列化之物件的正向參考。

適用於