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
- EventLogStatus.cs
- DataServiceRequest.cs
- TagElement.cs
- CornerRadiusConverter.cs
- MenuItemAutomationPeer.cs
- DataTransferEventArgs.cs
- FormViewDeleteEventArgs.cs
- dataSvcMapFileLoader.cs
- MethodBuilder.cs
- WebPartTransformerCollection.cs
- CfgArc.cs
- SmtpNtlmAuthenticationModule.cs
- EtwProvider.cs
- ServiceMemoryGates.cs
- Context.cs
- CodeDomConfigurationHandler.cs
- Predicate.cs
- SmtpNegotiateAuthenticationModule.cs
- MultipartContentParser.cs
- RegexRunnerFactory.cs
- TypeBuilderInstantiation.cs
- CodePropertyReferenceExpression.cs
- BooleanFunctions.cs
- IsolationInterop.cs
- TokenizerHelper.cs
- PostBackOptions.cs
- DataGridViewColumnDesignTimeVisibleAttribute.cs
- XmlReflectionImporter.cs
- Throw.cs
- LineGeometry.cs
- XmlWriterTraceListener.cs
- X509SecurityTokenProvider.cs
- Debug.cs
- FolderNameEditor.cs
- AssociationSetMetadata.cs
- CompositeControl.cs
- JavaScriptObjectDeserializer.cs
- ArcSegment.cs
- DataGridViewComboBoxEditingControl.cs
- SmtpNegotiateAuthenticationModule.cs
- ScrollableControl.cs
- NavigationFailedEventArgs.cs
- SmiSettersStream.cs
- DataGridViewToolTip.cs
- CookieParameter.cs
- XPathSelfQuery.cs
- XhtmlBasicLabelAdapter.cs
- isolationinterop.cs
- UriTemplateLiteralQueryValue.cs
- TraceSection.cs
- LayoutManager.cs
- ScrollBar.cs
- WebBrowserSiteBase.cs
- SpecialNameAttribute.cs
- HealthMonitoringSection.cs
- Queue.cs
- WsatConfiguration.cs
- HGlobalSafeHandle.cs
- SystemIcmpV6Statistics.cs
- regiisutil.cs
- AddIn.cs
- DisableDpiAwarenessAttribute.cs
- PrintPreviewControl.cs
- CodeDirectionExpression.cs
- SemaphoreFullException.cs
- ImportCatalogPart.cs
- ReadOnlyDataSourceView.cs
- DataGridViewTopLeftHeaderCell.cs
- LongValidator.cs
- EmptyTextWriter.cs
- ServiceInfo.cs
- DependencyObjectType.cs
- EntityDataSourceWizardForm.cs
- OperationContractAttribute.cs
- ToolStripDesigner.cs
- MgmtResManager.cs
- ManipulationPivot.cs
- CacheMode.cs
- Material.cs
- Thread.cs
- WebPartRestoreVerb.cs
- MemberAccessException.cs
- Parser.cs
- VisualTransition.cs
- indexingfiltermarshaler.cs
- DataGridViewRowHeaderCell.cs
- CompilerErrorCollection.cs
- DaylightTime.cs
- XPathDocument.cs
- DBDataPermission.cs
- RequestCacheValidator.cs
- SlotInfo.cs
- MatrixTransform3D.cs
- AQNBuilder.cs
- WebBrowserPermission.cs
- PathSegmentCollection.cs
- SoapObjectReader.cs
- HGlobalSafeHandle.cs
- listitem.cs
- XamlReaderHelper.cs