Code:
/ 4.0 / 4.0 / 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. //---------------------------------------------------------------------- // // 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
- WebConvert.cs
- LineServicesCallbacks.cs
- ProviderConnectionPointCollection.cs
- AliasedSlot.cs
- _NtlmClient.cs
- OutputScopeManager.cs
- JavaScriptObjectDeserializer.cs
- EqualityComparer.cs
- EntityContainerEmitter.cs
- SecurityPolicySection.cs
- DesignTimeVisibleAttribute.cs
- BinaryParser.cs
- _NegotiateClient.cs
- ListControlDesigner.cs
- CodeLinePragma.cs
- PriorityRange.cs
- AnimationException.cs
- HtmlAnchor.cs
- SevenBitStream.cs
- ScriptingJsonSerializationSection.cs
- XmlException.cs
- DeviceFiltersSection.cs
- DataRow.cs
- ColorAnimation.cs
- MimePart.cs
- SByteConverter.cs
- DataServiceException.cs
- Serializer.cs
- LassoSelectionBehavior.cs
- OutputCacheSection.cs
- Timer.cs
- DataGridViewSelectedColumnCollection.cs
- EnumerationRangeValidationUtil.cs
- ButtonFlatAdapter.cs
- DBAsyncResult.cs
- XmlSchemaImport.cs
- BuildProviderUtils.cs
- ComPlusDiagnosticTraceRecords.cs
- StylusCollection.cs
- AppearanceEditorPart.cs
- ISessionStateStore.cs
- BrowserCapabilitiesFactoryBase.cs
- Compiler.cs
- AutomationPeer.cs
- BaseAppDomainProtocolHandler.cs
- UpdateException.cs
- CatalogPartChrome.cs
- SqlTriggerAttribute.cs
- FileNameEditor.cs
- _AcceptOverlappedAsyncResult.cs
- LightweightEntityWrapper.cs
- TimeStampChecker.cs
- Clause.cs
- ObjectDataSourceView.cs
- DefaultEvaluationContext.cs
- QuadraticBezierSegment.cs
- PersistenceContext.cs
- XmlSerializerVersionAttribute.cs
- WindowsComboBox.cs
- GeometryConverter.cs
- OrderByLifter.cs
- TreeNodeClickEventArgs.cs
- InstanceDataCollection.cs
- CustomValidator.cs
- PeerDefaultCustomResolverClient.cs
- UnsafeCollabNativeMethods.cs
- DynamicAttribute.cs
- Query.cs
- AccessDataSource.cs
- Set.cs
- CapabilitiesSection.cs
- ResourceType.cs
- EndpointDiscoveryMetadataCD1.cs
- COM2ExtendedTypeConverter.cs
- MessageProtectionOrder.cs
- Style.cs
- SerializableAttribute.cs
- CheckBoxStandardAdapter.cs
- TextParaClient.cs
- PersistenceProviderFactory.cs
- SectionUpdates.cs
- DocumentScope.cs
- EntitySetBase.cs
- SymmetricAlgorithm.cs
- Bidi.cs
- DrawingGroupDrawingContext.cs
- UrlMappingsModule.cs
- ProviderSettings.cs
- RegexTree.cs
- LicFileLicenseProvider.cs
- SyndicationSerializer.cs
- ConfigsHelper.cs
- AutomationPropertyInfo.cs
- Delegate.cs
- MediaPlayerState.cs
- ContentPresenter.cs
- CompoundFileStorageReference.cs
- InstanceContextMode.cs
- State.cs
- MergablePropertyAttribute.cs