Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataWeb / Server / System / Data / Services / Epm / EpmContentSerializerBase.cs / 1305376 / EpmContentSerializerBase.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // //// Base Classes used for EntityPropertyMappingAttribute related content // serializers // // // @owner [....] //--------------------------------------------------------------------- namespace System.Data.Services.Common { using System.Collections.Generic; using System.Diagnostics; using System.Linq; #if ASTORIA_CLIENT using System.Xml; #else using System.ServiceModel.Syndication; using System.Data.Services.Providers; #endif ////// What kind of xml nodes to serialize /// internal enum EpmSerializationKind { ////// Serialize only attributes /// Attributes, ////// Serialize only elements /// Elements, ////// Serialize everything /// All } ////// Base visitor class for performing serialization of content whose location in the syndication /// feed is provided through EntityPropertyMappingAttributes /// internal abstract class EpmContentSerializerBase { ////// Constructor decided whether to use syndication or non-syndication sub-tree for target content mappings /// /// Target tree containing mapping information /// Helps in deciding whether to use syndication sub-tree or non-syndication one /// Object to be serialized /// SyndicationItem to which content will be added #if ASTORIA_CLIENT protected EpmContentSerializerBase(EpmTargetTree tree, bool isSyndication, object element, XmlWriter target) #else protected EpmContentSerializerBase(EpmTargetTree tree, bool isSyndication, object element, SyndicationItem target) #endif { this.Root = isSyndication ? tree.SyndicationRoot : tree.NonSyndicationRoot; this.Element = element; this.Target = target; this.Success = false; } ///Root of the target tree containing mapped xml elements/attribute protected EpmTargetPathSegment Root { get; private set; } ///Object whose properties we will read protected object Element { get; private set; } ///Target SyndicationItem on which we are going to add the serialized content #if ASTORIA_CLIENT protected XmlWriter Target #else protected SyndicationItem Target #endif { get; private set; } ///Indicates the success or failure of serialization protected bool Success { get; private set; } #if ASTORIA_CLIENT ///Public interface used by the EpmContentSerializer class internal void Serialize() #else ///Public interface used by the EpmContentSerializer class /// Data Service provider used for rights verification. internal void Serialize(DataServiceProviderWrapper provider) #endif { foreach (EpmTargetPathSegment targetSegment in this.Root.SubSegments) { #if ASTORIA_CLIENT this.Serialize(targetSegment, EpmSerializationKind.All); #else this.Serialize(targetSegment, EpmSerializationKind.All, provider); #endif } this.Success = true; } #if ASTORIA_CLIENT ////// Internal interface to be overridden in the subclasses. /// Goes through each subsegments and invokes itself for the children /// /// Current root segment in the target tree /// Which sub segments to serialize protected virtual void Serialize(EpmTargetPathSegment targetSegment, EpmSerializationKind kind) #else ////// Internal interface to be overridden in the subclasses. /// Goes through each subsegments and invokes itself for the children /// /// Current root segment in the target tree /// Which sub segments to serialize /// Data Service provider used for rights verification. protected virtual void Serialize(EpmTargetPathSegment targetSegment, EpmSerializationKind kind, DataServiceProviderWrapper provider) #endif { IEnumerablesegmentsToSerialize; switch (kind) { case EpmSerializationKind.Attributes: segmentsToSerialize = targetSegment.SubSegments.Where(s => s.IsAttribute == true); break; case EpmSerializationKind.Elements: segmentsToSerialize = targetSegment.SubSegments.Where(s => s.IsAttribute == false); break; default: Debug.Assert(kind == EpmSerializationKind.All, "Must serialize everything"); segmentsToSerialize = targetSegment.SubSegments; break; } foreach (EpmTargetPathSegment segment in segmentsToSerialize) { #if ASTORIA_CLIENT this.Serialize(segment, kind); #else this.Serialize(segment, kind, provider); #endif } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SystemColorTracker.cs
- Compiler.cs
- CryptoKeySecurity.cs
- ExtensionFile.cs
- QuadTree.cs
- Serializer.cs
- SiteMapNode.cs
- WebEventTraceProvider.cs
- TagNameToTypeMapper.cs
- BounceEase.cs
- WebPartRestoreVerb.cs
- QilList.cs
- Cast.cs
- BrowsableAttribute.cs
- WMIGenerator.cs
- SyntaxCheck.cs
- DataViewListener.cs
- PointCollection.cs
- HelpEvent.cs
- FrameworkElementFactoryMarkupObject.cs
- EditCommandColumn.cs
- Double.cs
- WebServiceErrorEvent.cs
- HttpCapabilitiesEvaluator.cs
- Msec.cs
- PhoneCall.cs
- PtsCache.cs
- Native.cs
- GridViewDeletedEventArgs.cs
- SlotInfo.cs
- SafeNativeMethods.cs
- HostedHttpTransportManager.cs
- ThreadStaticAttribute.cs
- FormViewInsertedEventArgs.cs
- XmlSchemaComplexContentRestriction.cs
- MembershipPasswordException.cs
- LinqDataSourceContextEventArgs.cs
- Bezier.cs
- ConsumerConnectionPoint.cs
- DrawingGroup.cs
- ToolStripItemImageRenderEventArgs.cs
- OpCellTreeNode.cs
- NamedPermissionSet.cs
- XmlSerializer.cs
- HttpValueCollection.cs
- WinInetCache.cs
- WorkflowDispatchContext.cs
- XpsFontSerializationService.cs
- DrawingGroup.cs
- ReadOnlyTernaryTree.cs
- WebRequestModuleElement.cs
- AsyncOperation.cs
- SimpleExpression.cs
- CngAlgorithmGroup.cs
- XmlSchemaCollection.cs
- PeerNameRecordCollection.cs
- AutomationIdentifier.cs
- DesignUtil.cs
- ScriptIgnoreAttribute.cs
- WbmpConverter.cs
- InputLanguage.cs
- TemplateManager.cs
- CompareValidator.cs
- XmlChildNodes.cs
- CorrelationManager.cs
- LoadedEvent.cs
- CompilerWrapper.cs
- DataPagerFieldCollection.cs
- ParagraphResult.cs
- ExternalFile.cs
- shaperfactoryquerycacheentry.cs
- HttpRequest.cs
- QilCloneVisitor.cs
- DataGridViewEditingControlShowingEventArgs.cs
- MarshalDirectiveException.cs
- Viewport2DVisual3D.cs
- FileIOPermission.cs
- StoreItemCollection.cs
- TableAdapterManagerGenerator.cs
- ActivityInfo.cs
- BitmapEffectDrawingContent.cs
- GlyphCollection.cs
- UnmanagedMarshal.cs
- RevocationPoint.cs
- DBConnectionString.cs
- PackagingUtilities.cs
- ListSortDescription.cs
- Container.cs
- QueryCacheKey.cs
- FindCriteria.cs
- TextRenderer.cs
- Material.cs
- Converter.cs
- TransactionContextValidator.cs
- Converter.cs
- FactoryGenerator.cs
- sitestring.cs
- ConsumerConnectionPointCollection.cs
- unsafenativemethodsother.cs
- CompensationHandlingFilter.cs