Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataWeb / Client / System / Data / Services / Client / ALinq / DataServiceExpressionVisitor.cs / 1305376 / DataServiceExpressionVisitor.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // //// Expression Visitors for Linq to URI translator // // // @owner [....] //--------------------------------------------------------------------- namespace System.Data.Services.Client { #region Namespaces. using System.Diagnostics; using System.Linq.Expressions; #endregion Namespaces. ////// Specific Vistior base class for the DataServiceQueryProvider. /// internal abstract class DataServiceALinqExpressionVisitor : ALinqExpressionVisitor { ////// Main visit method. /// /// Expression to visit ///Visited expression internal override Expression Visit(Expression exp) { if (exp == null) { return null; } switch ((ResourceExpressionType)exp.NodeType) { case ResourceExpressionType.RootResourceSet: case ResourceExpressionType.ResourceNavigationProperty: return this.VisitResourceSetExpression((ResourceSetExpression)exp); case ResourceExpressionType.ResourceNavigationPropertySingleton: return this.VisitNavigationPropertySingletonExpression((NavigationPropertySingletonExpression)exp); case ResourceExpressionType.InputReference: return this.VisitInputReferenceExpression((InputReferenceExpression)exp); default: return base.Visit(exp); } } ////// ResourceSetExpression visit method. /// /// ResourceSetExpression expression to visit ///Visited ResourceSetExpression expression internal virtual Expression VisitResourceSetExpression(ResourceSetExpression rse) { Expression source = this.Visit(rse.Source); if (source != rse.Source) { rse = new ResourceSetExpression(rse.Type, source, rse.MemberExpression, rse.ResourceType, rse.ExpandPaths, rse.CountOption, rse.CustomQueryOptions, rse.Projection); } return rse; } ////// NavigationPropertySingletonExpressionvisit method. /// /// NavigationPropertySingletonExpression expression to visit ///Visited NavigationPropertySingletonExpression expression internal virtual Expression VisitNavigationPropertySingletonExpression(NavigationPropertySingletonExpression npse) { Expression source = this.Visit(npse.Source); if (source != npse.Source) { npse = new NavigationPropertySingletonExpression(npse.Type, source, npse.MemberExpression, npse.MemberExpression.Type, npse.ExpandPaths, npse.CountOption, npse.CustomQueryOptions, npse.Projection); } return npse; } ////// Visit an /// InputReferenceExpression expression to visit ///, producing a new InputReferenceExpression /// based on the visited form of the that is referenced by /// the InputReferenceExpression argument, . /// Visited InputReferenceExpression expression internal virtual Expression VisitInputReferenceExpression(InputReferenceExpression ire) { Debug.Assert(ire != null, "ire != null -- otherwise caller never should have visited here"); ResourceExpression re = (ResourceExpression)this.Visit(ire.Target); return re.CreateReference(); } } } // 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
- TempFiles.cs
- AppDomainProtocolHandler.cs
- SwitchElementsCollection.cs
- ValidatorUtils.cs
- XmlAggregates.cs
- BooleanProjectedSlot.cs
- XslAst.cs
- NumericPagerField.cs
- BitmapImage.cs
- DataGridPageChangedEventArgs.cs
- CapabilitiesRule.cs
- FreeFormDragDropManager.cs
- FixedTextContainer.cs
- ObjectKeyFrameCollection.cs
- SafeNativeMethodsOther.cs
- JsonUriDataContract.cs
- DataServiceProcessingPipeline.cs
- BamlStream.cs
- FixedHyperLink.cs
- FieldNameLookup.cs
- TemplateBindingExpressionConverter.cs
- FlowLayout.cs
- StringUtil.cs
- WebPartVerbCollection.cs
- documentsequencetextpointer.cs
- InputReport.cs
- clipboard.cs
- ClientTarget.cs
- KeyValueConfigurationCollection.cs
- TypeInitializationException.cs
- RNGCryptoServiceProvider.cs
- DeclarativeConditionsCollection.cs
- ClusterRegistryConfigurationProvider.cs
- PatternMatcher.cs
- EntityDataSourceValidationException.cs
- OleStrCAMarshaler.cs
- PersonalizationAdministration.cs
- MimeMultiPart.cs
- TCEAdapterGenerator.cs
- XmlDocumentViewSchema.cs
- SHA256Managed.cs
- TerminatorSinks.cs
- GifBitmapDecoder.cs
- PopupRootAutomationPeer.cs
- WinInetCache.cs
- CustomLineCap.cs
- TypeResolvingOptions.cs
- VisualStyleInformation.cs
- ServiceActivationException.cs
- MissingManifestResourceException.cs
- ParseHttpDate.cs
- CodeMemberMethod.cs
- TypeGenericEnumerableViewSchema.cs
- UserControlCodeDomTreeGenerator.cs
- TextEditorParagraphs.cs
- XmlText.cs
- Transform3D.cs
- initElementDictionary.cs
- LOSFormatter.cs
- PartitionedStreamMerger.cs
- DbConnectionPool.cs
- SafeSecurityHandles.cs
- XmlWellformedWriter.cs
- CompiledXpathExpr.cs
- AttributeUsageAttribute.cs
- OSFeature.cs
- unsafenativemethodstextservices.cs
- sqlcontext.cs
- KeyTime.cs
- TakeQueryOptionExpression.cs
- BitmapCodecInfoInternal.cs
- PassportAuthenticationEventArgs.cs
- ComponentManagerBroker.cs
- StringStorage.cs
- SecurityTokenSpecification.cs
- DefaultBindingPropertyAttribute.cs
- SharedDp.cs
- TypedDataSetSchemaImporterExtensionFx35.cs
- UserControlAutomationPeer.cs
- VariableQuery.cs
- UnsafeNativeMethods.cs
- documentsequencetextpointer.cs
- DataSysAttribute.cs
- ClientBuildManagerCallback.cs
- StateItem.cs
- LayoutTableCell.cs
- UrlAuthFailedErrorFormatter.cs
- GenericEnumConverter.cs
- ReferenceEqualityComparer.cs
- VBIdentifierNameEditor.cs
- ConfigurationStrings.cs
- ColorConvertedBitmap.cs
- SqlNotificationEventArgs.cs
- DoubleLinkList.cs
- DbException.cs
- DesignTimeTemplateParser.cs
- ToolStripSystemRenderer.cs
- ParameterCollection.cs
- Compiler.cs
- TreeView.cs