Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Stack.cs
- ApplicationServiceHelper.cs
- BypassElementCollection.cs
- UshortList2.cs
- VerticalAlignConverter.cs
- DateTimeOffsetAdapter.cs
- LinqDataSourceDisposeEventArgs.cs
- HtmlControl.cs
- ResourcePart.cs
- TaskSchedulerException.cs
- basenumberconverter.cs
- ToolStripItemCollection.cs
- _NTAuthentication.cs
- OuterGlowBitmapEffect.cs
- DBParameter.cs
- Update.cs
- ButtonAutomationPeer.cs
- TextRange.cs
- XsltContext.cs
- ListBoxItemAutomationPeer.cs
- BadImageFormatException.cs
- OutputScopeManager.cs
- Function.cs
- InvokeMemberBinder.cs
- ModelItemCollectionImpl.cs
- KeyInterop.cs
- EditorZoneAutoFormat.cs
- WebPartMenuStyle.cs
- MsmqActivation.cs
- AppDomainProtocolHandler.cs
- ListBoxItemWrapperAutomationPeer.cs
- DispatcherSynchronizationContext.cs
- EventMap.cs
- ViewPort3D.cs
- ContentHostHelper.cs
- TraceEventCache.cs
- PathFigureCollection.cs
- Material.cs
- TraceLog.cs
- SchemaInfo.cs
- XmlSchemaSimpleTypeRestriction.cs
- WmlPageAdapter.cs
- SessionSwitchEventArgs.cs
- LeafCellTreeNode.cs
- BatchParser.cs
- XmlBinaryWriter.cs
- TypeConverterHelper.cs
- SynchronizedMessageSource.cs
- GenericRootAutomationPeer.cs
- OdbcInfoMessageEvent.cs
- RichTextBox.cs
- linebase.cs
- ValidationPropertyAttribute.cs
- SupportsEventValidationAttribute.cs
- ChannelServices.cs
- RegexGroupCollection.cs
- WindowHideOrCloseTracker.cs
- FixUp.cs
- XmlWellformedWriter.cs
- EventProxy.cs
- EmptyEnumerator.cs
- OdbcConnectionFactory.cs
- SQLGuid.cs
- AdCreatedEventArgs.cs
- LeftCellWrapper.cs
- RuleElement.cs
- TypeDescriptorContext.cs
- RenamedEventArgs.cs
- HtmlInputText.cs
- ClientProxyGenerator.cs
- EventHandlers.cs
- ProfileSettingsCollection.cs
- QueryStringParameter.cs
- ManagementDateTime.cs
- DiffuseMaterial.cs
- CodeConstructor.cs
- BreadCrumbTextConverter.cs
- LogExtent.cs
- EventOpcode.cs
- HtmlMeta.cs
- PathStreamGeometryContext.cs
- ComponentResourceManager.cs
- Rule.cs
- ImportCatalogPart.cs
- SqlParameterizer.cs
- PropertyEmitter.cs
- ProcessProtocolHandler.cs
- ModulesEntry.cs
- EventMap.cs
- ComponentEvent.cs
- DbInsertCommandTree.cs
- OperationFormatter.cs
- FillErrorEventArgs.cs
- SystemEvents.cs
- ContourSegment.cs
- MasterPage.cs
- IgnoreFlushAndCloseStream.cs
- SafeMemoryMappedViewHandle.cs
- RoutingEndpointTrait.cs
- Decoder.cs