C# 클래스 System.Runtime.Serialization.ObjectManager

파일 보기 프로젝트 열기: dotnet/corefx 1 사용 예제들

Private Properties

프로퍼티 타입 설명
AddObjectHolder void
AddOnDeserialization void
AddOnDeserialized void
CanCallGetType bool
CompleteISerializableObject void
CompleteObject void
DoNewlyRegisteredObjectFixups void
DoValueTypeFixup bool
FindObjectHolder ObjectHolder
FindOrCreateObjectHolder ObjectHolder
FixupSpecialObject void
GetCompletionInfo bool
GetDeserializationConstructor System.Reflection.ConstructorInfo
ObjectManager System.Diagnostics
RaiseOnDeserializedEvent void
RegisterFixup void
RegisterString void
RemoveOnDeserialization void
ResolveObjectReference bool

공개 메소드들

메소드 설명
DoFixups ( ) : void
GetObject ( long objectID ) : object
ObjectManager ( System selector, System context ) : System
ObjectManager ( ISurrogateSelector selector, StreamingContext context ) : System.Diagnostics
RaiseDeserializationEvent ( ) : void
RaiseOnDeserializingEvent ( object obj ) : void
RecordArrayElementFixup ( long arrayToBeFixed, int index, long objectRequired ) : void
RecordDelayedFixup ( long objectToBeFixed, string memberName, long objectRequired ) : void
RecordFixup ( long objectToBeFixed, MemberInfo member, long objectRequired ) : void
RecordFixup ( long objectToBeFixed, System member, long objectRequired ) : void
RegisterObject ( object obj, long objectID ) : void
RegisterObject ( object obj, long objectID, SerializationInfo info ) : void
RegisterObject ( object obj, long objectID, SerializationInfo info, long idOfContainingObj, MemberInfo member ) : void
RegisterObject ( object obj, long objectID, SerializationInfo info, long idOfContainingObj, MemberInfo member, int arrayIndex ) : void
RegisterObject ( object obj, long objectID, System info ) : void
RegisterObject ( object obj, long objectID, System info, long idOfContainingObj, System member ) : void
RegisterObject ( object obj, long objectID, System info, long idOfContainingObj, System member, int arrayIndex ) : void

비공개 메소드들

메소드 설명
AddObjectHolder ( ObjectHolder holder ) : void
AddOnDeserialization ( DeserializationEventHandler handler ) : void
AddOnDeserialized ( object obj ) : void
CanCallGetType ( object obj ) : bool
CompleteISerializableObject ( object obj, SerializationInfo info, StreamingContext context ) : void

Completes an object implementing ISerializable. This will involve calling that objects constructor which takes an instance of ISerializable and a StreamingContext.

CompleteObject ( ObjectHolder holder, bool bObjectFullyComplete ) : void
DoNewlyRegisteredObjectFixups ( ObjectHolder holder ) : void

This is called immediately after we register a new object. Walk that objects dependency list (if it has one) and decrement the counters on each object for the number of unsatisfiable references. If the count reaches 0, go ahead and process the object.

DoValueTypeFixup ( FieldInfo memberToFix, ObjectHolder holder, object value ) : bool
FindObjectHolder ( long objectID ) : ObjectHolder
FindOrCreateObjectHolder ( long objectID ) : ObjectHolder
FixupSpecialObject ( ObjectHolder holder ) : void
GetCompletionInfo ( FixupHolder fixup, ObjectHolder &holder, object &member, bool bThrowIfMissing ) : bool
GetDeserializationConstructor ( Type t ) : ConstructorInfo
ObjectManager ( ISurrogateSelector selector, StreamingContext context, bool checkSecurity, bool isCrossAppDomain ) : System.Diagnostics
RaiseOnDeserializedEvent ( object obj ) : void
RegisterFixup ( FixupHolder fixup, long objectToBeFixed, long objectRequired ) : void

Do the actual grunt work of recording a fixup and registering the dependency. Create the necessary ObjectHolders and use them to do the addition.

RegisterString ( string obj, long objectID, SerializationInfo info, long idOfContainingObj, MemberInfo member ) : void
RemoveOnDeserialization ( DeserializationEventHandler handler ) : void
ResolveObjectReference ( ObjectHolder holder ) : bool

Unfortunately, an ObjectReference could actually be a reference to another object reference and we don't know how far we have to tunnel until we can find the real object. While we're still getting instances of IObjectReference back and we're still getting new objects, keep calling GetRealObject. Once we've got the new object, take care of all of the fixups that we can do now that we've got it.

메소드 상세

DoFixups() 공개 메소드

public DoFixups ( ) : void
리턴 void

GetObject() 공개 메소드

public GetObject ( long objectID ) : object
objectID long
리턴 object

ObjectManager() 공개 메소드

public ObjectManager ( System selector, System context ) : System
selector System
context System
리턴 System

ObjectManager() 공개 메소드

public ObjectManager ( ISurrogateSelector selector, StreamingContext context ) : System.Diagnostics
selector ISurrogateSelector
context StreamingContext
리턴 System.Diagnostics

RaiseDeserializationEvent() 공개 메소드

public RaiseDeserializationEvent ( ) : void
리턴 void

RaiseOnDeserializingEvent() 공개 메소드

public RaiseOnDeserializingEvent ( object obj ) : void
obj object
리턴 void

RecordArrayElementFixup() 공개 메소드

public RecordArrayElementFixup ( long arrayToBeFixed, int index, long objectRequired ) : void
arrayToBeFixed long
index int
objectRequired long
리턴 void

RecordDelayedFixup() 공개 메소드

public RecordDelayedFixup ( long objectToBeFixed, string memberName, long objectRequired ) : void
objectToBeFixed long
memberName string
objectRequired long
리턴 void

RecordFixup() 공개 메소드

public RecordFixup ( long objectToBeFixed, MemberInfo member, long objectRequired ) : void
objectToBeFixed long
member MemberInfo
objectRequired long
리턴 void

RecordFixup() 공개 메소드

public RecordFixup ( long objectToBeFixed, System member, long objectRequired ) : void
objectToBeFixed long
member System
objectRequired long
리턴 void

RegisterObject() 공개 메소드

public RegisterObject ( object obj, long objectID ) : void
obj object
objectID long
리턴 void

RegisterObject() 공개 메소드

public RegisterObject ( object obj, long objectID, SerializationInfo info ) : void
obj object
objectID long
info SerializationInfo
리턴 void

RegisterObject() 공개 메소드

public RegisterObject ( object obj, long objectID, SerializationInfo info, long idOfContainingObj, MemberInfo member ) : void
obj object
objectID long
info SerializationInfo
idOfContainingObj long
member MemberInfo
리턴 void

RegisterObject() 공개 메소드

public RegisterObject ( object obj, long objectID, SerializationInfo info, long idOfContainingObj, MemberInfo member, int arrayIndex ) : void
obj object
objectID long
info SerializationInfo
idOfContainingObj long
member MemberInfo
arrayIndex int
리턴 void

RegisterObject() 공개 메소드

public RegisterObject ( object obj, long objectID, System info ) : void
obj object
objectID long
info System
리턴 void

RegisterObject() 공개 메소드

public RegisterObject ( object obj, long objectID, System info, long idOfContainingObj, System member ) : void
obj object
objectID long
info System
idOfContainingObj long
member System
리턴 void

RegisterObject() 공개 메소드

public RegisterObject ( object obj, long objectID, System info, long idOfContainingObj, System member, int arrayIndex ) : void
obj object
objectID long
info System
idOfContainingObj long
member System
arrayIndex int
리턴 void