Поделиться через


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)

Исходный код:
ObjectManager.cs
Исходный код:
ObjectManager.cs
Исходный код:
ObjectManager.cs

Регистрирует объект при его десериализации, сопоставляя его с 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)

Исходный код:
ObjectManager.cs
Исходный код:
ObjectManager.cs
Исходный код:
ObjectManager.cs

Регистрирует объект при его десериализации, сопоставляя его с 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)

Исходный код:
ObjectManager.cs
Исходный код:
ObjectManager.cs
Исходный код:
ObjectManager.cs

Регистрирует элемент объекта при его десериализации, сопоставляя его с 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[])

Исходный код:
ObjectManager.cs
Исходный код:
ObjectManager.cs
Исходный код:
ObjectManager.cs

Регистрирует элемент массива, содержащийся в объекте при его десериализации, сопоставляя его с 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 можно использовать для обнаружения десериализации определенного идентификатора объекта или же это прямая ссылка на объект, который еще не десериализован.

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