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
- HMACSHA384.cs
- SiteMapDataSource.cs
- WindowsTreeView.cs
- OleDbCommand.cs
- TrackBar.cs
- MessageOperationFormatter.cs
- Light.cs
- SignatureGenerator.cs
- DefaultEvaluationContext.cs
- Int64AnimationUsingKeyFrames.cs
- DeferredReference.cs
- EventManager.cs
- InfoCardSymmetricCrypto.cs
- IndentedWriter.cs
- KnownTypeAttribute.cs
- CompositeKey.cs
- SkinBuilder.cs
- LockCookie.cs
- CryptoKeySecurity.cs
- TdsRecordBufferSetter.cs
- EllipseGeometry.cs
- PerfCounterSection.cs
- TagPrefixInfo.cs
- OLEDB_Enum.cs
- PathFigureCollection.cs
- NavigationService.cs
- MessageDroppedTraceRecord.cs
- LinkTarget.cs
- MdImport.cs
- CompoundFileIOPermission.cs
- FlowSwitchLink.cs
- SqlDataAdapter.cs
- XComponentModel.cs
- UnknownBitmapEncoder.cs
- ItemsControl.cs
- TraceData.cs
- DesignerVerb.cs
- PenThreadWorker.cs
- ConnectionProviderAttribute.cs
- TdsParameterSetter.cs
- MissingSatelliteAssemblyException.cs
- TypeUsage.cs
- PersonalizationState.cs
- CheckPair.cs
- DocumentReferenceCollection.cs
- BitmapInitialize.cs
- CheckBoxList.cs
- TraceProvider.cs
- CollectionConverter.cs
- DataGridLength.cs
- SqlMethodTransformer.cs
- SqlXml.cs
- HwndPanningFeedback.cs
- MDIClient.cs
- ValueOfAction.cs
- RtType.cs
- GridSplitter.cs
- Memoizer.cs
- TextEditorTyping.cs
- SpanIndex.cs
- Atom10ItemFormatter.cs
- RegexReplacement.cs
- DataGridRowClipboardEventArgs.cs
- HtmlFormWrapper.cs
- DirectoryInfo.cs
- ObjectSet.cs
- DataSourceControl.cs
- FontStretches.cs
- XPathDescendantIterator.cs
- AnimatedTypeHelpers.cs
- MSAAEventDispatcher.cs
- InstanceData.cs
- TextMessageEncoder.cs
- Int64AnimationBase.cs
- Pkcs9Attribute.cs
- InstanceDataCollectionCollection.cs
- MetadataUtilsSmi.cs
- FacetDescriptionElement.cs
- DesignerPerfEventProvider.cs
- Latin1Encoding.cs
- CounterCreationDataCollection.cs
- SqlFormatter.cs
- PageContentCollection.cs
- BookmarkEventArgs.cs
- CustomAssemblyResolver.cs
- WebBrowserDocumentCompletedEventHandler.cs
- SolidColorBrush.cs
- WorkflowCompensationBehavior.cs
- DataGridViewRowsRemovedEventArgs.cs
- StringConcat.cs
- SynchronizedDispatch.cs
- PauseStoryboard.cs
- XmlSchemaComplexType.cs
- ButtonFieldBase.cs
- DbParameterCollectionHelper.cs
- MultiSelector.cs
- DynamicDataRouteHandler.cs
- FaultHandlingFilter.cs
- GlyphManager.cs
- CheckBoxPopupAdapter.cs