Sdílet prostřednictvím


ObjectManager.RegisterObject Metoda

Definice

Registruje objekt, protože je deserializován.

Přetížení

RegisterObject(Object, Int64)

Zaregistruje objekt jako deserializovaný a přidružuje ho k objectID.

RegisterObject(Object, Int64, SerializationInfo)

Zaregistruje objekt tak, jak je deserializován, přidruží ho k objectIDa zaznamená SerializationInfo použitý objekt.

RegisterObject(Object, Int64, SerializationInfo, Int64, MemberInfo)

Zaregistruje člena objektu, protože je deserializován, přidružuje ho objectIDk a zaznamená SerializationInfoobjekt .

RegisterObject(Object, Int64, SerializationInfo, Int64, MemberInfo, Int32[])

Zaregistruje člena pole obsaženého v objektu, zatímco je deserializován, přidružuje ho k objectIDa zaznamená SerializationInfo.

RegisterObject(Object, Int64)

Zdroj:
ObjectManager.cs
Zdroj:
ObjectManager.cs
Zdroj:
ObjectManager.cs

Zaregistruje objekt jako deserializovaný a přidružuje ho k 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)

Parametry

obj
Object

Objekt, který se má zaregistrovat

objectID
Int64

ID objektu, který se má zaregistrovat.

Atributy

Výjimky

Parametr obj je null.

Parametr objectID je menší než nebo roven nule.

Objekt objectID již byl zaregistrován pro jiný objekt než obj.

Poznámky

ObjectManager uchovává informace o objektu i jeho ID. Později během deserializace, lze použít k určení, GetObject zda určité ID objektu již bylo deserializováno, nebo zda se jedná o dopředný odkaz na objekt, který ještě nebyl deserializován.

Platí pro

RegisterObject(Object, Int64, SerializationInfo)

Zdroj:
ObjectManager.cs
Zdroj:
ObjectManager.cs
Zdroj:
ObjectManager.cs

Zaregistruje objekt tak, jak je deserializován, přidruží ho k objectIDa zaznamená SerializationInfo použitý objekt.

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)

Parametry

obj
Object

Objekt, který se má zaregistrovat

objectID
Int64

ID objektu, který se má zaregistrovat.

info
SerializationInfo

Používá SerializationInfo se, pokud obj implementuje ISerializable nebo má ISerializationSurrogate. info se dokončí se všemi požadovanými informacemi o opravě a po dokončení se předá požadovanému objektu.

Atributy

Výjimky

Parametr obj je null.

Parametr objectID je menší než nebo roven nule.

Objekt objectID již byl zaregistrován pro jiný objekt než obj.

Poznámky

ObjectManager uchovává informace o objektu i jeho ID. Později během deserializace můžete pomocí příkazu GetObject zjistit, zda bylo id konkrétního objektu již deserializováno, nebo zda se jedná o dopředný odkaz na objekt, který ještě nebyl deserializován.

Platí pro

RegisterObject(Object, Int64, SerializationInfo, Int64, MemberInfo)

Zdroj:
ObjectManager.cs
Zdroj:
ObjectManager.cs
Zdroj:
ObjectManager.cs

Zaregistruje člena objektu, protože je deserializován, přidružuje ho objectIDk a zaznamená SerializationInfoobjekt .

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)

Parametry

obj
Object

Objekt, který se má zaregistrovat

objectID
Int64

ID objektu, který se má zaregistrovat.

info
SerializationInfo

Používá SerializationInfo se, pokud obj implementuje ISerializable nebo má ISerializationSurrogate. info se dokončí se všemi požadovanými informacemi o opravě a po dokončení se předá požadovanému objektu.

idOfContainingObj
Int64

ID objektu, který obsahuje obj. Tento parametr je povinný pouze v případě, že obj je typ hodnoty.

member
MemberInfo

Pole v obsahujícím objektu, kde obj existuje. Tento parametr má význam pouze v případě, že obj je typ hodnoty.

Atributy

Výjimky

Parametr obj je null.

Parametr objectID je menší než nebo roven nule.

Objekt objectID již byl zaregistrován pro jiný objekt než obj, nebo member není a FieldInfomember není null.

Poznámky

Pokud je ValueType parametr a , musíte zadat idOfContainingObjmember kvůli obj způsobu, jakým se u ValueType objektů provádějí opravy. Místo pro uložení informací o objektu je přiděleno vloženě s objektem, který ValueType obsahuje. Pokud je však ValueType objekt zahoděný, aby byl zaregistrován pomocí ObjectManager, ztratí spojení s objektem, který obsahuje. Aby bylo zaručeno, že k opravám dojde v instanci ValueType uloženého v obsahujícím objektu, a ne v instanci v rámečku, ObjectManager uchovává některé další informace.

ObjectManager uchovává informace o objektu i jeho ID. Později během deserializace, lze použít ke zjištění, GetObject zda konkrétní ID objektu již bylo deserializováno, nebo zda se jedná o dopředný odkaz na objekt ještě není deserializován.

Platí pro

RegisterObject(Object, Int64, SerializationInfo, Int64, MemberInfo, Int32[])

Zdroj:
ObjectManager.cs
Zdroj:
ObjectManager.cs
Zdroj:
ObjectManager.cs

Zaregistruje člena pole obsaženého v objektu, zatímco je deserializován, přidružuje ho k objectIDa zaznamená 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())

Parametry

obj
Object

Objekt, který se má zaregistrovat

objectID
Int64

ID objektu, který se má zaregistrovat.

info
SerializationInfo

Používá SerializationInfo se, pokud obj implementuje ISerializable nebo má ISerializationSurrogate. info se dokončí se všemi požadovanými informacemi o opravě a po dokončení se předá požadovanému objektu.

idOfContainingObj
Int64

ID objektu, který obsahuje obj. Tento parametr je povinný pouze v případě, že obj je typ hodnoty.

member
MemberInfo

Pole v obsahujícím objektu, kde obj existuje. Tento parametr má význam pouze v případě, že obj je typ hodnoty.

arrayIndex
Int32[]

Pokud obj je a ValueType členem pole, arrayIndex obsahuje index v rámci tohoto pole, kde obj existuje. arrayIndex je ignorován, pokud obj není současně ValueType a členem pole.

Atributy

Výjimky

Parametr obj je null.

Parametr objectID je menší než nebo roven nule.

Objekt objectID již byl zaregistrován pro jiný objekt než obj, nebo member není a FieldInfomember není null.

Poznámky

Pokud je ValueType parametr a , musíte zadat idOfContainingObjmember kvůli obj způsobu, jakým se u ValueType objektů provádějí opravy. Místo pro uložení informací o objektu je přiděleno vloženě s objektem, který ValueType obsahuje. Pokud je však ValueType objekt zahoděný, aby byl zaregistrován pomocí ObjectManager, ztratí spojení s objektem, který obsahuje. Aby bylo zaručeno, že k opravám dojde v instanci ValueType uloženého v obsahujícím objektu, a ne v instanci v rámečku, ObjectManager uchovává některé další informace.

ObjectManager uchovává informace o objektu i jeho ID. Později během deserializace, lze použít ke zjištění, GetObject zda konkrétní ID objektu již bylo deserializováno, nebo zda se jedná o dopředný odkaz na objekt ještě není deserializován.

Platí pro