Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Print / Reach / Serialization / manager / ReachDocumentReferenceCollectionSerializerAsync.cs / 1 / ReachDocumentReferenceCollectionSerializerAsync.cs
/*++ Copyright (C) 2004- 2005 Microsoft Corporation All rights reserved. Module Name: ReachDocumentReferenceCollectionSerializerAsync.cs Abstract: Author: [....] ([....]) 25-May-2005 Revision History: --*/ using System; using System.Collections; using System.Collections.Specialized; using System.ComponentModel; using System.Diagnostics; using System.Reflection; using System.Xml; using System.IO; using System.Security; using System.Security.Permissions; using System.ComponentModel.Design.Serialization; using System.Windows.Xps.Packaging; using System.Windows.Documents; using System.Windows.Media; using System.Windows.Markup; namespace System.Windows.Xps.Serialization { ////// /// internal class ReachDocumentReferenceCollectionSerializerAsync : ReachSerializerAsync { ////// Creates new serializer for a DocumentReferenceCollection /// /// serialization manager for this seriaizer public ReachDocumentReferenceCollectionSerializerAsync( PackageSerializationManager manager ): base(manager) { } public override void 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; } } } ////// /// internal override void PersistObjectData( SerializableObjectContext serializableObjectContext ) { if (serializableObjectContext == null) { throw new ArgumentNullException("serializableObjectContext"); } // get DocumentReferenceCollection System.Collections.Generic.IEnumerableenumerableObject = serializableObjectContext.TargetObject as System.Collections.Generic.IEnumerable ; if (enumerableObject == null) { throw new XpsSerializationException(ReachSR.Get(ReachSRID.MustBeOfType, "serializableObjectContext.TargetObject", typeof(System.Collections.Generic.IEnumerable ))); } SerializeDocumentReferences(serializableObjectContext); } internal override void EndPersistObjectData( ) { // // do nothing in this stage // } /// /// This is being called to serialize the DocumentReference items /// contained within the colleciton /// private void SerializeDocumentReferences( SerializableObjectContext serializableObjectContext ) { IEnumerator enumerator = ((System.Collections.Generic.IEnumerable)serializableObjectContext.TargetObject). GetEnumerator(); enumerator.Reset(); DocumentReferenceCollectionSerializerContext context = new DocumentReferenceCollectionSerializerContext(this, serializableObjectContext, enumerator, SerializerAction.serializeNextDocumentReference); ((XpsSerializationManagerAsync)SerializationManager).OperationStack.Push(context); } private void SerializeNextDocumentReference( IEnumerator enumerator, SerializableObjectContext serializableObjectContext ) { if(enumerator.MoveNext()) { DocumentReferenceCollectionSerializerContext context = new DocumentReferenceCollectionSerializerContext(this, serializableObjectContext, enumerator, SerializerAction.serializeNextDocumentReference); ((XpsSerializationManagerAsync)SerializationManager).OperationStack.Push(context); object documentReference = enumerator.Current; SerializeDocumentReference(documentReference); } } /// /// Called to serialize a single DocumentReference /// private void SerializeDocumentReference( object documentReference ) { ReachSerializer serializer = SerializationManager.GetSerializer(documentReference); if(serializer!=null) { serializer.SerializeObject(documentReference); } else { // should we throw if this is not a DocumentReference or just not do anything? throw new XpsSerializationException(ReachSR.Get(ReachSRID.ReachSerialization_NoSerializer)); } } }; internal class DocumentReferenceCollectionSerializerContext : ReachSerializerContext { public DocumentReferenceCollectionSerializerContext( ReachSerializerAsync serializer, SerializableObjectContext objectContext, IEnumerator enumerator, SerializerAction action ): base(serializer,objectContext,action) { this._enumerator = enumerator; } public IEnumerator Enumerator { get { return _enumerator; } } private IEnumerator _enumerator; }; } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SoapAttributeAttribute.cs
- CustomValidator.cs
- cookie.cs
- EUCJPEncoding.cs
- DiscoveryVersion.cs
- CodeBinaryOperatorExpression.cs
- PagePropertiesChangingEventArgs.cs
- ToolStripSeparator.cs
- XmlHelper.cs
- ActivityBuilderXamlWriter.cs
- UIPropertyMetadata.cs
- Profiler.cs
- CopyNodeSetAction.cs
- WorkflowOwnershipException.cs
- DateTimeConverter2.cs
- Camera.cs
- Membership.cs
- PathTooLongException.cs
- Tablet.cs
- WindowsFormsHostPropertyMap.cs
- FlowDocumentPaginator.cs
- CodeVariableReferenceExpression.cs
- PrimitiveSchema.cs
- CodeSubDirectoriesCollection.cs
- ScriptResourceDefinition.cs
- ObjectNotFoundException.cs
- FileDialog_Vista_Interop.cs
- DetailsViewPagerRow.cs
- Point3DConverter.cs
- MembershipUser.cs
- PageBuildProvider.cs
- XsdBuildProvider.cs
- PreviewKeyDownEventArgs.cs
- SymmetricAlgorithm.cs
- RijndaelManaged.cs
- BrowserDefinition.cs
- BlobPersonalizationState.cs
- CommandHelper.cs
- InputReferenceExpression.cs
- PassportPrincipal.cs
- HttpVersion.cs
- EventLog.cs
- FilterException.cs
- ImageCollectionEditor.cs
- HandledMouseEvent.cs
- BoundsDrawingContextWalker.cs
- GatewayDefinition.cs
- MetadataItemSerializer.cs
- TraceHandlerErrorFormatter.cs
- ViewManager.cs
- GeometryGroup.cs
- QuaternionAnimation.cs
- CapabilitiesState.cs
- BitmapVisualManager.cs
- Filter.cs
- WindowsListViewItem.cs
- RepeatBehaviorConverter.cs
- ValidatingReaderNodeData.cs
- LocalFileSettingsProvider.cs
- CallbackValidatorAttribute.cs
- CommonDialog.cs
- CommonProperties.cs
- LicenseContext.cs
- DefaultValueMapping.cs
- XmlObjectSerializerContext.cs
- FreezableOperations.cs
- DataServiceQuery.cs
- TextTreeNode.cs
- RootBrowserWindowProxy.cs
- EventLogLink.cs
- CompressEmulationStream.cs
- Timer.cs
- ForeignKeyConstraint.cs
- ProxyFragment.cs
- ClosureBinding.cs
- Reference.cs
- TraceContext.cs
- CaseInsensitiveHashCodeProvider.cs
- ProvidersHelper.cs
- BaseParagraph.cs
- ActionMessageFilterTable.cs
- BindingList.cs
- TypeLoader.cs
- StaticContext.cs
- IisTraceListener.cs
- ProfileGroupSettings.cs
- TemplateBamlRecordReader.cs
- ResizeGrip.cs
- LinqDataSourceHelper.cs
- AttributeQuery.cs
- CatalogPartDesigner.cs
- SmiMetaDataProperty.cs
- PositiveTimeSpanValidator.cs
- RefreshPropertiesAttribute.cs
- RootBrowserWindow.cs
- DiagnosticsConfigurationHandler.cs
- AttachedPropertyBrowsableAttribute.cs
- SessionStateItemCollection.cs
- Assembly.cs
- PropertyPath.cs