AsyncOperation( ReachSerializerContext context ) { switch (context.Action) { case SerializerAction.endPersistObjectData: { EndPersistObjectData(); break; } case SerializerAction.serializeNextDocumentReference: { DocumentReferenceCollectionSerializerContext thisContext = context as DocumentReferenceCollectionSerializerContext; if (thisContext != null) { SerializeNextDocumentReference(thisContext.Enumerator, thisContext.ObjectContext); } break; } default: { base.AsyncOperation(context); break; } } }
SerializeDocumentReferences( SerializableObjectContext serializableObjectContext ) { IEnumerator enumerator = ((System.Collections.Generic.IEnumerable <DocumentReference>)serializableObjectContext.TargetObject). GetEnumerator(); enumerator.Reset(); DocumentReferenceCollectionSerializerContext context = new DocumentReferenceCollectionSerializerContext(this, serializableObjectContext, enumerator, SerializerAction.serializeNextDocumentReference); ((IXpsSerializationManagerAsync)SerializationManager).OperationStack.Push(context); }
SerializeNextDocumentReference( IEnumerator enumerator, SerializableObjectContext serializableObjectContext ) { if (enumerator.MoveNext()) { DocumentReferenceCollectionSerializerContext context = new DocumentReferenceCollectionSerializerContext(this, serializableObjectContext, enumerator, SerializerAction.serializeNextDocumentReference); ((IXpsSerializationManagerAsync)SerializationManager).OperationStack.Push(context); object documentReference = enumerator.Current; SerializeDocumentReference(documentReference); } }