ObjectManager.RegisterObject 方法

定義

在物件被反序列化時註冊。

多載

名稱 Description
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。

屬性

例外狀況

參數 objnull

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作或擁有 ISerializationSurrogateinfo 會以所需的修正資訊完成,並在該物件完成後交給該物件。

屬性

例外狀況

參數 objnull

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作或擁有 ISerializationSurrogateinfo 會以所需的修正資訊完成,並在該物件完成後交給該物件。

idOfContainingObj
Int64

包含 obj的物件的 ID 為 。 此參數僅在 obj 為值型別時才需要。

member
MemberInfo

包含物件中的域,其中 obj 存在。 此參數僅在 obj 為值型態時才有意義。

屬性

例外狀況

參數 objnull

objectID參數小於或等於零。

objectID 物件已被註冊為除 obj,或 member 不是 FieldInfomembernull且 。

備註

你需要提供 memberidOfContainingObj 參數objValueType,因為修正物件的方式不同ValueType。 儲存 a 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作或擁有 ISerializationSurrogateinfo 會以所需的修正資訊完成,並在該物件完成後交給該物件。

idOfContainingObj
Int64

包含 obj的物件的 ID 為 。 此參數僅在 obj 為值型別時才需要。

member
MemberInfo

包含物件中的域,其中 obj 存在。 此參數僅在 obj 為值型態時才有意義。

arrayIndex
Int32[]

obj 是 且 ValueType 是陣列的成員, arrayIndex 則 包含該陣列中存在 obj 的索引。 arrayIndexobj 不是陣列的 A ValueType ,則 會被忽略。

屬性

例外狀況

參數 objnull

objectID參數小於或等於零。

objectID物件已被註冊為非 obj,或member不是 FieldInfomember 且 。null

備註

你需要提供 memberidOfContainingObj 參數objValueType,因為修正物件的方式不同ValueType。 儲存 a ValueType 資訊的空間與其所包含的物件同列分配。 然而,當 被 ValueType 打包以註冊為 ObjectManager時,它會失去與所包含物件的連結。 為了確保修正發生在包含物件的實例 ValueType 中,而非盒中實例,該實 ObjectManager 例保留了一些額外資訊。

ObjectManager 保留物件及其 ID 的資訊。 在反序列化過程中, GetObject 可以用來判斷特定物件 ID 是否已被反序列化,或是尚未反序列化物件的前向參考。

適用於