예제 #1
0
        DiscoverObjectData(
            Object serializedObject,
            SerializablePropertyContext serializedProperty
            )
        {
            //
            // Trying to figure out the parent of this node, which is at this stage
            // the same node previously pushed on the stack or in other words it is
            // the node that is currently on the top of the stack
            //
            SerializableObjectContext
                serializableObjectParentContext = (SerializableObjectContext)SerializationManager.
                                                  GraphContextStack[typeof(SerializableObjectContext)];
            //
            // Create the context for the current object
            //
            SerializableObjectContext serializableObjectContext =
                SerializableObjectContext.CreateContext(SerializationManager,
                                                        serializedObject,
                                                        serializableObjectParentContext,
                                                        serializedProperty);

            //
            // Set the root object to be serialized at the level of the SerializationManager
            //
            if (SerializationManager.RootSerializableObjectContext == null)
            {
                SerializationManager.RootSerializableObjectContext = serializableObjectContext;
            }

            return(serializableObjectContext);
        }
        BeginSerializeObject(
            Object serializedObject
            )
        {
            FixedPage fp = serializedObject as FixedPage;

            bool bManualStartDoc = NgcSerializationManager.StartPage();

            SerializableObjectContext serializableObjectContext =
                SerializableObjectContext.CreateContext(SerializationManager,
                                                        serializedObject,
                                                        null,
                                                        null);
            NGCPageSerializerContext context = new NGCPageSerializerContext(this,
                                                                            serializableObjectContext,
                                                                            SerializerAction.endPersistObjectData,
                                                                            bManualStartDoc);

            NgcSerializationManager.OperationStack.Push(context);

            Visual visual = (Visual)serializableObjectContext.TargetObject as Visual;

            Size pageSize = new Size(fp.Width, fp.Height);

            NgcSerializationManager.PageSize = pageSize;

            if (visual != null)
            {
                NgcSerializationManager.WalkVisual(visual);
            }
        }
        BeginSerializeObject(
            Object serializedObject
            )
        {
            DocumentPage dp = serializedObject as DocumentPage;

            if (dp != null)
            {
                Visual pageRootVisual = dp.Visual;

                bool bManualStartDoc = NgcSerializationManager.StartPage();

                SerializableObjectContext serializableObjectContext =
                    SerializableObjectContext.CreateContext(SerializationManager,
                                                            serializedObject,
                                                            null,
                                                            null);
                NGCPageSerializerContext context = new NGCPageSerializerContext(this,
                                                                                serializableObjectContext,
                                                                                SerializerAction.endPersistObjectData,
                                                                                bManualStartDoc);

                NgcSerializationManager.OperationStack.Push(context);

                ReachSerializer serializer = SerializationManager.GetSerializer(pageRootVisual);

                serializer.SerializeObject(pageRootVisual);
            }
        }
        BeginSerializeObject(
            Object serializedObject
            )
        {
            IEnumerator enumerator =
                ((System.Collections.Generic.IEnumerable <DocumentReference>)serializedObject).
                GetEnumerator();

            enumerator.Reset();

            SerializableObjectContext serializableObjectContext =
                SerializableObjectContext.CreateContext(SerializationManager,
                                                        serializedObject,
                                                        null,
                                                        null);

            NgcDocumentReferenceCollectionSerializerContext
                context = new NgcDocumentReferenceCollectionSerializerContext(this,
                                                                              serializableObjectContext,
                                                                              enumerator,
                                                                              SerializerAction.serializeNextDocumentReference);

            NgcSerializationManager.OperationStack.Push(context);
        }