다음을 통해 공유


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)

Source:
ObjectManager.cs
Source:
ObjectManager.cs
Source:
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

등록할 개체의 ID입니다.

특성

예외

obj 매개 변수가 null인 경우

objectID 매개 변수가 0보다 작은 경우

objectIDobj 이외의 개체에 대해 이미 등록된 경우

설명

ObjectManager 는 개체와 해당 ID 모두에 대한 정보를 유지합니다. 나중에 역직렬화하는 GetObject 동안 을 사용하여 특정 개체 ID가 이미 역직렬화되었는지 또는 아직 역직렬화되지 않은 개체에 대한 정방향 참조인지 여부를 확인할 수 있습니다.

적용 대상

RegisterObject(Object, Int64, SerializationInfo)

Source:
ObjectManager.cs
Source:
ObjectManager.cs
Source:
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

등록할 개체의 ID입니다.

info
SerializationInfo

objSerializationInfo을 구현하거나 ISerializable를 포함하는 경우 사용된 ISerializationSurrogate입니다. info는 필수 픽스업 정보를 사용하여 완료된 다음 필수 개체가 완료될 때 해당 개체에 전달됩니다.

특성

예외

obj 매개 변수가 null인 경우

objectID 매개 변수가 0보다 작은 경우

objectIDobj 이외의 개체에 대해 이미 등록된 경우

설명

ObjectManager 는 개체와 해당 ID 모두에 대한 정보를 유지합니다. 나중에 역직렬화 중에 를 사용하여 GetObject 특정 개체 ID가 이미 역직렬화되었는지 또는 아직 역직렬화되지 않은 개체에 대한 정방향 참조인지 여부를 검색할 수 있습니다.

적용 대상

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

Source:
ObjectManager.cs
Source:
ObjectManager.cs
Source:
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

등록할 개체의 ID입니다.

info
SerializationInfo

objSerializationInfo을 구현하거나 ISerializable를 포함하는 경우 사용된 ISerializationSurrogate입니다. info는 필수 픽스업 정보를 사용하여 완료된 다음 필수 개체가 완료될 때 해당 개체에 전달됩니다.

idOfContainingObj
Int64

obj를 포함하는 개체의 ID입니다. 이 매개 변수는 obj가 값 형식인 경우에만 필요합니다.

member
MemberInfo

obj가 존재하는 포함 개체의 필드입니다. 이 매개 변수는 obj가 값 형식인 경우에만 의미가 있습니다.

특성

예외

obj 매개 변수가 null인 경우

objectID 매개 변수가 0보다 작은 경우

objectID가 이미 obj 이외의 개체에 대해 등록된 경우 또는 memberFieldInfo가 아니며 membernull도 아닌 경우

설명

개체에서 수정이 member 수행 ValueType 되는 방식 때문에 가 인 ValueType 경우 objidOfContainingObj 매개 변수를 제공해야 합니다. 에 대한 ValueType 정보를 저장할 공간은 포함하는 개체와 함께 인라인으로 할당됩니다. 그러나 가 ValueType 에 등록되도록 boxed되면 ObjectManager포함하는 개체와의 연결이 끊어집니다. 상자가 있는 instance 아닌 포함하는 개체에 저장된 의 ValueType instance ObjectManager 수정이 발생하도록 보장하기 위해 는 몇 가지 추가 정보를 유지합니다.

ObjectManager 는 개체와 해당 ID 모두에 대한 정보를 유지합니다. 나중에 역직렬화하는 GetObject 동안 특정 개체 ID가 이미 역직렬화되었는지 또는 아직 역직렬화되지 않은 개체에 대한 정방향 참조인지 여부를 검색하는 데 사용할 수 있습니다.

적용 대상

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

Source:
ObjectManager.cs
Source:
ObjectManager.cs
Source:
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

등록할 개체의 ID입니다.

info
SerializationInfo

objSerializationInfo을 구현하거나 ISerializable를 포함하는 경우 사용된 ISerializationSurrogate입니다. info는 필수 픽스업 정보를 사용하여 완료된 다음 필수 개체가 완료될 때 해당 개체에 전달됩니다.

idOfContainingObj
Int64

obj를 포함하는 개체의 ID입니다. 이 매개 변수는 obj가 값 형식인 경우에만 필요합니다.

member
MemberInfo

obj가 존재하는 포함 개체의 필드입니다. 이 매개 변수는 obj가 값 형식인 경우에만 의미가 있습니다.

arrayIndex
Int32[]

objValueType이고 배열의 멤버인 경우 arrayIndex에는 obj가 존재하는 해당 배열 내부의 인덱스가 포함됩니다. arrayIndexValueType 또는 배열의 멤버가 아닌 경우에는 obj가 무시됩니다.

특성

예외

obj 매개 변수가 null인 경우

objectID 매개 변수가 0보다 작은 경우

objectID가 이미 obj 이외의 개체에 대해 등록된 경우 또는 memberFieldInfo가 아니며 membernull도 아닌 경우

설명

개체에서 수정이 member 수행 ValueType 되는 방식 때문에 가 인 ValueType 경우 objidOfContainingObj 매개 변수를 제공해야 합니다. 에 대한 ValueType 정보를 저장할 공간은 포함하는 개체와 함께 인라인으로 할당됩니다. 그러나 가 ValueType 에 등록되도록 boxed되면 ObjectManager포함하는 개체와의 연결이 끊어집니다. 상자가 있는 instance 아닌 포함하는 개체에 저장된 의 ValueType instance ObjectManager 수정이 발생하도록 보장하기 위해 는 몇 가지 추가 정보를 유지합니다.

ObjectManager 는 개체와 해당 ID 모두에 대한 정보를 유지합니다. 나중에 역직렬화하는 GetObject 동안 특정 개체 ID가 이미 역직렬화되었는지 또는 아직 역직렬화되지 않은 개체에 대한 정방향 참조인지 여부를 검색하는 데 사용할 수 있습니다.

적용 대상