Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataWeb / Client / System / Data / Services / Client / ALinq / ResourceExpression.cs / 1305376 / ResourceExpression.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // //// Base class for expressions representing resources // // // @owner [....] //--------------------------------------------------------------------- namespace System.Data.Services.Client { #region Namespaces. using System; using System.Collections.Generic; using System.Linq.Expressions; #endregion Namespaces. ////// The counting option for the resource expression /// internal enum CountOption { ///No counting None, ///Translates to the $count segment. ValueOnly, ///Translates to the $inlinecount=allpages query option InlineAll } ////// Abstract base class for expressions that support Query Options /// internal abstract class ResourceExpression : Expression { #region Fields. ///Source expression. protected readonly Expression source; ///Singleton InputReferenceExpression that should be used to indicate a reference to this element of the resource path protected InputReferenceExpression inputRef; ///expand paths private ListexpandPaths; /// The count query option for the resource set private CountOption countOption; ///custom query options private DictionarycustomQueryOptions; private ProjectionQueryOptionExpression projection; #endregion Fields. /// /// Creates a Resource expression /// /// the return type of the expression /// The custom query options /// the expand paths /// the node type /// the count option #pragma warning disable 618 internal ResourceExpression(Expression source, ExpressionType nodeType, Type type, ListexpandPaths, CountOption countOption, Dictionary customQueryOptions, ProjectionQueryOptionExpression projection) : base(nodeType, type) { this.expandPaths = expandPaths ?? new List (); this.countOption = countOption; this.customQueryOptions = customQueryOptions ?? new Dictionary (ReferenceEqualityComparer .Instance); this.projection = projection; this.source = source; } #pragma warning restore 618 abstract internal ResourceExpression CreateCloneWithNewType(Type type); abstract internal bool HasQueryOptions { get; } /// /// Resource type for this expression (for sets, this is the element type). /// Never null. /// internal abstract Type ResourceType { get; } ////// Does this expression produce at most 1 resource? /// abstract internal bool IsSingleton { get; } ////// Expand query option for ResourceSet /// internal virtual ListExpandPaths { get { return this.expandPaths; } set { this.expandPaths = value; } } /// /// Count query option for ResourceSet /// internal virtual CountOption CountOption { get { return this.countOption; } set { this.countOption = value; } } ////// custom query options for ResourceSet /// internal virtual DictionaryCustomQueryOptions { get { return this.customQueryOptions; } set { this.customQueryOptions = value; } } /// Description of the projection on a resource. ////// This property is set by the ProjectionAnalyzer component (so it /// mutates this instance), or by the ResourceBinder when it clones /// a ResourceExpression. /// internal ProjectionQueryOptionExpression Projection { get { return this.projection; } set { this.projection = value; } } ////// Gets the source expression. /// internal Expression Source { get { return this.source; } } ////// Creates an ///that refers to this component of the resource path. /// The returned expression is guaranteed to be reference-equal (object.ReferenceEquals) /// to any other InputReferenceExpression that also refers to this resource path component. /// The InputReferenceExpression that refers to this resource path component internal InputReferenceExpression CreateReference() { if (this.inputRef == null) { this.inputRef = new InputReferenceExpression(this); } return this.inputRef; } } } // 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
- FrameworkTextComposition.cs
- AlignmentXValidation.cs
- TransactionScopeDesigner.cs
- DateTimeFormatInfoScanner.cs
- FormViewDeletedEventArgs.cs
- Globals.cs
- MemberDomainMap.cs
- CompilerScopeManager.cs
- PrimaryKeyTypeConverter.cs
- HttpListenerException.cs
- NavigationFailedEventArgs.cs
- metadatamappinghashervisitor.hashsourcebuilder.cs
- SessionState.cs
- SqlDataSourceView.cs
- AccessDataSource.cs
- TextModifier.cs
- MethodRental.cs
- SrgsItemList.cs
- XmlDeclaration.cs
- elementinformation.cs
- EntityDataSourceChangingEventArgs.cs
- DataChangedEventManager.cs
- AutomationPropertyChangedEventArgs.cs
- DataGridViewImageColumn.cs
- ServiceOperationParameter.cs
- FilterEventArgs.cs
- BindingGraph.cs
- DayRenderEvent.cs
- CodeComment.cs
- BrowsableAttribute.cs
- ToolStripSplitButton.cs
- CalendarBlackoutDatesCollection.cs
- EditorOptionAttribute.cs
- XmlSerializerFormatAttribute.cs
- EventMappingSettingsCollection.cs
- DataGridViewSelectedRowCollection.cs
- CultureInfoConverter.cs
- XsdBuildProvider.cs
- ConfigurationErrorsException.cs
- CodeDelegateCreateExpression.cs
- SettingsPropertyWrongTypeException.cs
- NavigateEvent.cs
- RenderCapability.cs
- Span.cs
- RSACryptoServiceProvider.cs
- GridSplitter.cs
- WebPartConnectionsCancelVerb.cs
- FormViewPageEventArgs.cs
- ToolStripScrollButton.cs
- ClientConfigurationSystem.cs
- HttpApplication.cs
- Image.cs
- MbpInfo.cs
- WebPartConnectionsCancelEventArgs.cs
- DataSysAttribute.cs
- ResourceCollectionInfo.cs
- WebPartEventArgs.cs
- InheritablePropertyChangeInfo.cs
- HttpException.cs
- ToolBarButton.cs
- GB18030Encoding.cs
- Properties.cs
- CodeIdentifier.cs
- ControlUtil.cs
- PerspectiveCamera.cs
- NullRuntimeConfig.cs
- ResourceSet.cs
- DBSqlParserColumn.cs
- DependencyProperty.cs
- IdnMapping.cs
- WebConfigurationFileMap.cs
- ItemChangedEventArgs.cs
- OutputWindow.cs
- AnnotationStore.cs
- IndexedEnumerable.cs
- GridViewSortEventArgs.cs
- BufferedStream.cs
- QfeChecker.cs
- TextBoxLine.cs
- ResXResourceReader.cs
- XslNumber.cs
- OutputCacheProfileCollection.cs
- HttpConfigurationSystem.cs
- HyperLinkField.cs
- ToolBar.cs
- CodeDomLocalizationProvider.cs
- UntypedNullExpression.cs
- FilteredSchemaElementLookUpTable.cs
- PassportPrincipal.cs
- CompilerTypeWithParams.cs
- dtdvalidator.cs
- IPGlobalProperties.cs
- ServerValidateEventArgs.cs
- InputScope.cs
- SplitterCancelEvent.cs
- TextRangeEditLists.cs
- InheritanceAttribute.cs
- TableLayoutSettings.cs
- GeneralTransform3D.cs
- ProxyHwnd.cs