ObjectManager.RegisterObject Metod

Definition

Registrerar ett objekt när det deserialiseras.

Överlagringar

Name Description
RegisterObject(Object, Int64)

Registrerar ett objekt eftersom det deserialiseras och associerar det med objectID.

RegisterObject(Object, Int64, SerializationInfo)

Registrerar ett objekt eftersom det deserialiseras, associerar det med objectIDoch registrerar det SerializationInfo som används med det.

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

Registrerar en medlem i ett objekt eftersom det deserialiseras, associerar det med objectIDoch registrerar SerializationInfo.

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

Registrerar en medlem i en matris som finns i ett objekt medan den deserialiseras, associerar den med objectIDoch registrerar SerializationInfo.

RegisterObject(Object, Int64)

Registrerar ett objekt eftersom det deserialiseras och associerar det med 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)

Parametrar

obj
Object

Objektet som ska registreras.

objectID
Int64

ID:t för det objekt som ska registreras.

Attribut

Undantag

Parametern obj är null.

Parametern objectID är mindre än eller lika med noll.

objectID Har redan registrerats för ett annat objekt än obj.

Kommentarer

ObjectManager behåller information om både objektet och dess ID. Senare under deserialiseringen GetObject kan användas för att avgöra om ett visst objekt-ID redan har deserialiserats eller om det är en referens framåt till ett objekt som ännu inte har deserialiserats.

Gäller för

RegisterObject(Object, Int64, SerializationInfo)

Registrerar ett objekt eftersom det deserialiseras, associerar det med objectIDoch registrerar det SerializationInfo som används med det.

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)

Parametrar

obj
Object

Objektet som ska registreras.

objectID
Int64

ID:t för det objekt som ska registreras.

info
SerializationInfo

Används SerializationInfo om implementerar ISerializable eller har en ISerializationSurrogateobj . info kommer att slutföras med nödvändig korrigeringsinformation och skickas sedan till det objekt som krävs när objektet har slutförts.

Attribut

Undantag

Parametern obj är null.

Parametern objectID är mindre än eller lika med noll.

objectID Har redan registrerats för ett annat objekt än obj.

Kommentarer

ObjectManager behåller informationen om både objektet och dess ID. Senare under deserialiseringen kan du använda GetObject för att ta reda på om ett visst objekt-ID redan har deserialiserats eller om det är en referens framåt till ett objekt som ännu inte har deserialiserats.

Gäller för

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

Registrerar en medlem i ett objekt eftersom det deserialiseras, associerar det med objectIDoch registrerar 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)

Parametrar

obj
Object

Objektet som ska registreras.

objectID
Int64

ID:t för det objekt som ska registreras.

info
SerializationInfo

Används SerializationInfo om implementerar ISerializable eller har en ISerializationSurrogateobj . info kommer att slutföras med nödvändig korrigeringsinformation och skickas sedan till det objekt som krävs när objektet har slutförts.

idOfContainingObj
Int64

ID:t för objektet som innehåller obj. Den här parametern krävs endast om obj är en värdetyp.

member
MemberInfo

Fältet i det innehållande objektet där obj det finns. Den här parametern betyder endast om obj är en värdetyp.

Attribut

Undantag

Parametern obj är null.

Parametern objectID är mindre än eller lika med noll.

objectID Har redan registrerats för ett annat objekt än obj, eller member är inte en FieldInfo och member är inte null.

Kommentarer

Du måste ange parametrarna member och idOfContainingObj om obj är en ValueType på grund av hur korrigeringar utförs på ValueType objekt. Utrymmet för att lagra informationen för en ValueType allokeras infogat med dess innehållande objekt. Men när ValueType rutan är markerad för att registreras med ObjectManagerförlorar den anslutningen med dess innehållande objekt. För att garantera att korrigeringar sker i instansen av den ValueType lagrade i det innehållande objektet och inte i den inramade instansen behåller den ObjectManager ytterligare information.

ObjectManager behåller information om både objektet och dess ID. Senare under deserialiseringen GetObject kan användas för att identifiera om ett visst objekt-ID redan har deserialiserats eller om det är en referens till ett objekt som ännu inte deserialiserats.

Gäller för

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

Registrerar en medlem i en matris som finns i ett objekt medan den deserialiseras, associerar den med objectIDoch registrerar 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())

Parametrar

obj
Object

Objektet som ska registreras.

objectID
Int64

ID:t för det objekt som ska registreras.

info
SerializationInfo

Används SerializationInfo om implementerar ISerializable eller har en ISerializationSurrogateobj . info kommer att slutföras med nödvändig korrigeringsinformation och skickas sedan till det objekt som krävs när objektet har slutförts.

idOfContainingObj
Int64

ID:t för objektet som innehåller obj. Den här parametern krävs endast om obj är en värdetyp.

member
MemberInfo

Fältet i det innehållande objektet där obj det finns. Den här parametern betyder endast om obj är en värdetyp.

arrayIndex
Int32[]

Om obj är en ValueType och en medlem i en matris, arrayIndex innehåller indexet i matrisen där obj det finns. arrayIndex ignoreras om obj inte är både en ValueType och en medlem i en matris.

Attribut

Undantag

Parametern obj är null.

Parametern objectID är mindre än eller lika med noll.

objectID Har redan registrerats för ett annat objekt än obj, eller member är inte en FieldInfo och member är inte null.

Kommentarer

Du måste ange parametrarna member och idOfContainingObj om obj är en ValueType på grund av hur korrigeringar utförs på ValueType objekt. Utrymmet för att lagra informationen för en ValueType allokeras infogat med dess innehållande objekt. Men när ValueType rutan är markerad för att registreras med ObjectManagerförlorar den anslutningen med dess innehållande objekt. För att garantera att korrigeringar sker i instansen av den ValueType lagrade i det innehållande objektet och inte i den inramade instansen behåller den ObjectManager ytterligare information.

ObjectManager behåller information om både objektet och dess ID. Senare under deserialiseringen GetObject kan användas för att identifiera om ett visst objekt-ID redan har deserialiserats eller om det är en referens till ett objekt som ännu inte deserialiserats.

Gäller för