Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataWeb / Client / System / Data / Services / Client / DataServiceQueryContinuation.cs / 1305376 / DataServiceQueryContinuation.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // //// Provides a class to represent the continuation of a query. // //--------------------------------------------------------------------- namespace System.Data.Services.Client { #region Namespaces. using System.Collections.Generic; using System.Diagnostics; using System.Linq.Expressions; using System.Text; using System.Reflection; #endregion Namespaces. ///Use this class to represent the continuation of a query. [DebuggerDisplay("{NextLinkUri}")] public abstract class DataServiceQueryContinuation { #region Private fields. ///URI to next page of data. private readonly Uri nextLinkUri; ///Projection plan for results of next page. private readonly ProjectionPlan plan; #endregion Private fields. #region Constructors. ///Initializes a new /// URI to next page of data. /// Projection plan for results of next page. internal DataServiceQueryContinuation(Uri nextLinkUri, ProjectionPlan plan) { Debug.Assert(nextLinkUri != null, "nextLinkUri != null"); Debug.Assert(plan != null, "plan != null"); this.nextLinkUri = nextLinkUri; this.plan = plan; } #endregion Contructors. #region Properties. ///instance. The URI to the next page of data. public Uri NextLinkUri { get { return this.nextLinkUri; } } ///Type of element to be paged over. internal abstract Type ElementType { get; } ///Projection plan for the next page of data; null if not available. internal ProjectionPlan Plan { get { return this.plan; } } #endregion Properties. #region Methods. ///Provides a string representation of this continuation. ///String representation. public override string ToString() { return this.NextLinkUri.ToString(); } ///Creates a new /// Link to next page of data (possibly null). /// Plan to materialize the data (only null if nextLinkUri is null). ///instance. A new continuation object; null if nextLinkUri is null. internal static DataServiceQueryContinuation Create(Uri nextLinkUri, ProjectionPlan plan) { Debug.Assert(plan != null || nextLinkUri == null, "plan != null || nextLinkUri == null"); if (nextLinkUri == null) { return null; } var constructors = typeof(DataServiceQueryContinuation<>).MakeGenericType(plan.ProjectedType).GetConstructors(BindingFlags.NonPublic | BindingFlags.Instance); Debug.Assert(constructors.Length == 1, "constructors.Length == 1"); object result = Util.ConstructorInvoke(constructors[0], new object[] { nextLinkUri, plan }); return (DataServiceQueryContinuation)result; } ////// Initializes a new ///instance that can /// be used for this continuation. /// A new initializes internal QueryComponents CreateQueryComponents() { QueryComponents result = new QueryComponents(this.NextLinkUri, Util.DataServiceVersionEmpty, this.Plan.LastSegmentType, null, null); return result; } #endregion Methods. } ///. Use this class to represent the continuation of a query. ///Element type. public sealed class DataServiceQueryContinuation: DataServiceQueryContinuation { #region Contructors. /// Initializes a new typed instance. /// URI to next page of data. /// Projection plan for results of next page. internal DataServiceQueryContinuation(Uri nextLinkUri, ProjectionPlan plan) : base(nextLinkUri, plan) { } #endregion Contructors. #region Properties. ///Type of element to be paged over. internal override Type ElementType { get { return typeof(T); } } #endregion Properties. } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // //// Provides a class to represent the continuation of a query. // //--------------------------------------------------------------------- namespace System.Data.Services.Client { #region Namespaces. using System.Collections.Generic; using System.Diagnostics; using System.Linq.Expressions; using System.Text; using System.Reflection; #endregion Namespaces. ///Use this class to represent the continuation of a query. [DebuggerDisplay("{NextLinkUri}")] public abstract class DataServiceQueryContinuation { #region Private fields. ///URI to next page of data. private readonly Uri nextLinkUri; ///Projection plan for results of next page. private readonly ProjectionPlan plan; #endregion Private fields. #region Constructors. ///Initializes a new /// URI to next page of data. /// Projection plan for results of next page. internal DataServiceQueryContinuation(Uri nextLinkUri, ProjectionPlan plan) { Debug.Assert(nextLinkUri != null, "nextLinkUri != null"); Debug.Assert(plan != null, "plan != null"); this.nextLinkUri = nextLinkUri; this.plan = plan; } #endregion Contructors. #region Properties. ///instance. The URI to the next page of data. public Uri NextLinkUri { get { return this.nextLinkUri; } } ///Type of element to be paged over. internal abstract Type ElementType { get; } ///Projection plan for the next page of data; null if not available. internal ProjectionPlan Plan { get { return this.plan; } } #endregion Properties. #region Methods. ///Provides a string representation of this continuation. ///String representation. public override string ToString() { return this.NextLinkUri.ToString(); } ///Creates a new /// Link to next page of data (possibly null). /// Plan to materialize the data (only null if nextLinkUri is null). ///instance. A new continuation object; null if nextLinkUri is null. internal static DataServiceQueryContinuation Create(Uri nextLinkUri, ProjectionPlan plan) { Debug.Assert(plan != null || nextLinkUri == null, "plan != null || nextLinkUri == null"); if (nextLinkUri == null) { return null; } var constructors = typeof(DataServiceQueryContinuation<>).MakeGenericType(plan.ProjectedType).GetConstructors(BindingFlags.NonPublic | BindingFlags.Instance); Debug.Assert(constructors.Length == 1, "constructors.Length == 1"); object result = Util.ConstructorInvoke(constructors[0], new object[] { nextLinkUri, plan }); return (DataServiceQueryContinuation)result; } ////// Initializes a new ///instance that can /// be used for this continuation. /// A new initializes internal QueryComponents CreateQueryComponents() { QueryComponents result = new QueryComponents(this.NextLinkUri, Util.DataServiceVersionEmpty, this.Plan.LastSegmentType, null, null); return result; } #endregion Methods. } ///. Use this class to represent the continuation of a query. ///Element type. public sealed class DataServiceQueryContinuation: DataServiceQueryContinuation { #region Contructors. /// Initializes a new typed instance. /// URI to next page of data. /// Projection plan for results of next page. internal DataServiceQueryContinuation(Uri nextLinkUri, ProjectionPlan plan) : base(nextLinkUri, plan) { } #endregion Contructors. #region Properties. ///Type of element to be paged over. internal override Type ElementType { get { return typeof(T); } } #endregion Properties. } } // 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
- TrackingDataItem.cs
- SecurityAccessDeniedException.cs
- IntegrationExceptionEventArgs.cs
- ObjectSet.cs
- DesignerSerializationVisibilityAttribute.cs
- BlurBitmapEffect.cs
- DataException.cs
- MessageBuilder.cs
- CustomMenuItemCollection.cs
- NativeMethods.cs
- SiteMap.cs
- ButtonColumn.cs
- DataMemberConverter.cs
- EdmToObjectNamespaceMap.cs
- TextFormatterHost.cs
- DbConnectionFactory.cs
- SchemaMapping.cs
- StylusPointDescription.cs
- SHA1.cs
- TextServicesCompartmentEventSink.cs
- BufferBuilder.cs
- MobileResource.cs
- FrameworkReadOnlyPropertyMetadata.cs
- Utils.cs
- MachinePropertyVariants.cs
- SafeLibraryHandle.cs
- FolderNameEditor.cs
- DataControlPagerLinkButton.cs
- ConnectionPointCookie.cs
- ServerValidateEventArgs.cs
- RunInstallerAttribute.cs
- HandledMouseEvent.cs
- DataGridViewTopLeftHeaderCell.cs
- TTSVoice.cs
- DataGridViewColumnConverter.cs
- EffectiveValueEntry.cs
- XmlSchemaAnnotation.cs
- CodeAttachEventStatement.cs
- AnnotationDocumentPaginator.cs
- ViewService.cs
- HScrollBar.cs
- DecimalConverter.cs
- EncodingNLS.cs
- ProxyBuilder.cs
- StorageComplexTypeMapping.cs
- TraceContextRecord.cs
- StrokeRenderer.cs
- WebServiceEnumData.cs
- MetadataItemSerializer.cs
- GeneralTransform3DCollection.cs
- EntityKeyElement.cs
- HtmlPanelAdapter.cs
- GenericAuthenticationEventArgs.cs
- AspCompat.cs
- DataGridViewImageColumn.cs
- SoapObjectWriter.cs
- RadialGradientBrush.cs
- IisTraceWebEventProvider.cs
- PiiTraceSource.cs
- StrongNameIdentityPermission.cs
- GroupItemAutomationPeer.cs
- CharStorage.cs
- ProcessThreadCollection.cs
- ConnectionPoolManager.cs
- RotateTransform.cs
- GregorianCalendarHelper.cs
- Double.cs
- JpegBitmapDecoder.cs
- TreeViewImageIndexConverter.cs
- SystemIcmpV4Statistics.cs
- DataStreams.cs
- RoleService.cs
- CapabilitiesRule.cs
- AssemblyBuilderData.cs
- EndpointConfigContainer.cs
- RestHandlerFactory.cs
- SqlConnectionPoolProviderInfo.cs
- ImageBrush.cs
- HostProtectionException.cs
- JobPageOrder.cs
- NamespaceExpr.cs
- RawStylusInputCustomData.cs
- SafeNativeMethods.cs
- TextTreePropertyUndoUnit.cs
- Deflater.cs
- CacheVirtualItemsEvent.cs
- MissingManifestResourceException.cs
- DomainConstraint.cs
- ActivationService.cs
- MsmqIntegrationSecurity.cs
- Vector3DCollectionValueSerializer.cs
- HttpRuntime.cs
- ColumnClickEvent.cs
- WsdlWriter.cs
- XmlSchemaChoice.cs
- LogFlushAsyncResult.cs
- SqlCaseSimplifier.cs
- TabControlEvent.cs
- LinearQuaternionKeyFrame.cs
- PropertyItem.cs