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

Идентификатор объекта для регистрации.

Атрибуты

Исключения

Параметр 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

Идентификатор объекта для регистрации.

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

Идентификатор объекта для регистрации.

info
SerializationInfo

Объект SerializationInfo используется, если параметр obj реализует объект ISerializable или имеет объект ISerializationSurrogate. info завершается с помощью любых требуемых сведений об адресной привязке, а затем передается необходимому объекту, когда объект завершается.

idOfContainingObj
Int64

Идентификатор объекта, который содержит obj. Этот параметр требуется только в случае, если obj является типом значения.

member
MemberInfo

Поле в содержащем объекте, где находится obj. Этот параметр имеет смысл только в случае, если obj является типом значения.

Атрибуты

Исключения

Параметр obj имеет значение null.

Значение параметра objectID меньше или равно нулю.

objectID уже зарегистрирован для объекта, отличного от obj, или member не является FieldInfo, а member не имеет значение null.

Комментарии

Необходимо указать member параметры и idOfContainingObj параметры, если obj это связано с тем, как исправления выполняются ValueType для ValueType объектов. Пространство для хранения сведений ValueType выделяется встроенным с содержащим объектом. Однако при ValueType регистрации ObjectManagerупаковаемого объекта он теряет соединение с содержащим объектом. Чтобы гарантировать, что исправления происходят в экземпляре ValueType содержащего объекта, а не в упакованом экземпляре, 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

Идентификатор объекта для регистрации.

info
SerializationInfo

Объект SerializationInfo используется, если параметр obj реализует объект ISerializable или имеет объект ISerializationSurrogate. info завершается с помощью любых требуемых сведений об адресной привязке, а затем передается необходимому объекту, когда объект завершается.

idOfContainingObj
Int64

Идентификатор объекта, который содержит obj. Этот параметр требуется только в случае, если obj является типом значения.

member
MemberInfo

Поле в содержащем объекте, где находится obj. Этот параметр имеет смысл только в случае, если obj является типом значения.

arrayIndex
Int32[]

Если параметр obj является объектом ValueType и элементом массива, параметр arrayIndex содержит индекс в том массиве, где находится obj. Параметр arrayIndex игнорируется, если параметр obj не является ни объектом ValueType, ни элементом массива.

Атрибуты

Исключения

Параметр obj имеет значение null.

Значение параметра objectID меньше или равно нулю.

objectID уже зарегистрирован для объекта, отличного от obj, или member не является FieldInfo, а member не имеет значение null.

Комментарии

Необходимо указать member и idOfContainingObj параметры, если obj это ValueType связано с тем, как исправления выполняются для ValueType объектов. Пространство для хранения сведений ValueType выделяется вместе с содержащим объектом. Однако при ValueType регистрации ObjectManagerупаковаемого объекта он теряет соединение со своим содержащим объектом. Чтобы гарантировать, что исправления происходят в экземпляре ValueType содержащего объекта, а не в упакованом экземпляре, ObjectManager сохраняются некоторые дополнительные сведения.

ObjectManager сохраняет сведения об объекте и его идентификаторе. Позже во время десериализации можно использовать для обнаружения того, GetObject был ли определенный идентификатор объекта уже десериализован или является ли он прямая ссылка на объект еще не десериализованным.

Применяется к