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
- XPathSingletonIterator.cs
- CornerRadiusConverter.cs
- AddInEnvironment.cs
- ExpressionBindingCollection.cs
- ValueUtilsSmi.cs
- HttpHeaderCollection.cs
- TextDecorationCollection.cs
- SelectionItemPattern.cs
- TPLETWProvider.cs
- TimersDescriptionAttribute.cs
- URI.cs
- Configuration.cs
- ObjectContext.cs
- DataServiceConfiguration.cs
- NamespaceEmitter.cs
- DataGridTableStyleMappingNameEditor.cs
- ObjectIDGenerator.cs
- RepeaterItem.cs
- CqlParser.cs
- SequentialOutput.cs
- DictionaryItemsCollection.cs
- Int32AnimationBase.cs
- CodeNamespaceImportCollection.cs
- SystemUdpStatistics.cs
- Stylesheet.cs
- TreeViewImageKeyConverter.cs
- EnvironmentPermission.cs
- ProbeMatchesApril2005.cs
- CodeTypeParameterCollection.cs
- StateRuntime.cs
- KeyboardDevice.cs
- PropertyPathConverter.cs
- PhoneCall.cs
- Opcode.cs
- WebPartManager.cs
- GeneratedCodeAttribute.cs
- EntityDataSourceSelectingEventArgs.cs
- GridViewUpdateEventArgs.cs
- XmlObjectSerializerWriteContextComplexJson.cs
- DisplayNameAttribute.cs
- ObjectHandle.cs
- ViewBox.cs
- WebPartEventArgs.cs
- MatrixAnimationUsingPath.cs
- ExceptionUtil.cs
- RemotingConfiguration.cs
- InvalidComObjectException.cs
- XmlSchemaAnyAttribute.cs
- TextServicesCompartmentEventSink.cs
- Cursor.cs
- ScrollItemProviderWrapper.cs
- LicenseManager.cs
- Scripts.cs
- PartialTrustVisibleAssembly.cs
- ConfigXmlWhitespace.cs
- XPathArrayIterator.cs
- ImmutableCollection.cs
- Parsers.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- WindowsListViewItemStartMenu.cs
- XmlExceptionHelper.cs
- BitArray.cs
- InputScope.cs
- Variable.cs
- DocumentXPathNavigator.cs
- ProofTokenCryptoHandle.cs
- WithStatement.cs
- SetIterators.cs
- IndentedTextWriter.cs
- AssemblyBuilder.cs
- PrimitiveSchema.cs
- DbMetaDataFactory.cs
- ObjectDataSourceMethodEventArgs.cs
- XmlQueryCardinality.cs
- ContainerSelectorGlyph.cs
- RefreshInfo.cs
- PriorityChain.cs
- DynamicDocumentPaginator.cs
- NamedPipeDuplicateContext.cs
- XmlUTF8TextReader.cs
- TypeToken.cs
- HtmlInputText.cs
- WindowsFormsLinkLabel.cs
- MetabaseReader.cs
- LineServices.cs
- ConfigurationErrorsException.cs
- GuidelineCollection.cs
- smtpconnection.cs
- DrawListViewSubItemEventArgs.cs
- HttpInputStream.cs
- ToolStripProgressBar.cs
- EditorAttributeInfo.cs
- DataGridViewRowEventArgs.cs
- Serializer.cs
- ColorConvertedBitmapExtension.cs
- AssociationSet.cs
- DataColumnMapping.cs
- NavigationProperty.cs
- QilGeneratorEnv.cs
- MatrixTransform.cs