Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / ndp / fx / src / DataWeb / Client / System / Data / Services / Client / ALinq / DataServiceExpressionVisitor.cs / 1 / DataServiceExpressionVisitor.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // //// Expression Visitors for Linq to URI translator // // // @owner [....] //--------------------------------------------------------------------- namespace System.Data.Services.Client { using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Text; using System.Linq.Expressions; using System.Diagnostics; ////// Specific Vistior base class for the DataServiceQueryProvider. /// internal abstract class DataServiceExpressionVisitor : ExpressionVisitor { ////// 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.CustomQueryOptions); } 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.ExpandPaths, npse.CustomQueryOptions); } 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) { if (ire == null) { return null; } ResourceExpression re = (ResourceExpression)this.Visit(ire.Target); return re.CreateReference(); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // //// Expression Visitors for Linq to URI translator // // // @owner [....] //--------------------------------------------------------------------- namespace System.Data.Services.Client { using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Text; using System.Linq.Expressions; using System.Diagnostics; ////// Specific Vistior base class for the DataServiceQueryProvider. /// internal abstract class DataServiceExpressionVisitor : ExpressionVisitor { ////// 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.CustomQueryOptions); } 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.ExpandPaths, npse.CustomQueryOptions); } 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) { if (ire == null) { return null; } 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
- QilCloneVisitor.cs
- CodePropertyReferenceExpression.cs
- ConstraintEnumerator.cs
- BamlLocalizerErrorNotifyEventArgs.cs
- CallContext.cs
- BulletedListEventArgs.cs
- DbMetaDataColumnNames.cs
- RequestQueryProcessor.cs
- HttpBufferlessInputStream.cs
- XmlSchemaAppInfo.cs
- Pkcs7Recipient.cs
- SqlDataSourceQuery.cs
- CachingHintValidation.cs
- WebAdminConfigurationHelper.cs
- IntSecurity.cs
- MimePart.cs
- TripleDES.cs
- AccessDataSource.cs
- UInt64Converter.cs
- RichListBox.cs
- ExceptionUtil.cs
- UserControl.cs
- CDSCollectionETWBCLProvider.cs
- QuaternionAnimationBase.cs
- SqlServer2KCompatibilityCheck.cs
- EntryIndex.cs
- TrimSurroundingWhitespaceAttribute.cs
- sqlser.cs
- VideoDrawing.cs
- BindingListCollectionView.cs
- NonSerializedAttribute.cs
- DataBindingCollection.cs
- BoundColumn.cs
- SoapProtocolReflector.cs
- Label.cs
- FontStyle.cs
- DocumentCollection.cs
- Buffer.cs
- ScrollBarAutomationPeer.cs
- SchemaElementDecl.cs
- TransformationRules.cs
- CodeAttributeDeclaration.cs
- AttachedPropertyDescriptor.cs
- ResourcesGenerator.cs
- SymbolDocumentGenerator.cs
- EmbossBitmapEffect.cs
- SqlPersonalizationProvider.cs
- TrustLevelCollection.cs
- HandlerWithFactory.cs
- ZipFileInfo.cs
- WizardForm.cs
- Polyline.cs
- IsolatedStorageException.cs
- InputLanguageSource.cs
- TagElement.cs
- ProxyAttribute.cs
- GeneralTransformCollection.cs
- BindingMemberInfo.cs
- ValueConversionAttribute.cs
- LoginView.cs
- ObjectSpanRewriter.cs
- PageAdapter.cs
- SeekStoryboard.cs
- CursorInteropHelper.cs
- Solver.cs
- DocumentViewerHelper.cs
- TypeHelper.cs
- SafeNativeMethodsOther.cs
- PtsCache.cs
- BitmapEffectCollection.cs
- PersistenceTypeAttribute.cs
- ToolBarPanel.cs
- MenuAdapter.cs
- DeobfuscatingStream.cs
- SHA512.cs
- CodeGeneratorOptions.cs
- QueryOperationResponseOfT.cs
- dataSvcMapFileLoader.cs
- SendMessageRecord.cs
- KeyTimeConverter.cs
- TextProviderWrapper.cs
- EditingScopeUndoUnit.cs
- StylusPointPropertyUnit.cs
- StylusPoint.cs
- ZoneButton.cs
- xmlfixedPageInfo.cs
- ItemsPresenter.cs
- CodeTypeConstructor.cs
- ItemsPresenter.cs
- TypeAccessException.cs
- ImpersonationContext.cs
- DocumentPage.cs
- StrongNameKeyPair.cs
- EdgeModeValidation.cs
- ClrPerspective.cs
- EventWaitHandleSecurity.cs
- SmiConnection.cs
- GradientSpreadMethodValidation.cs
- MouseDevice.cs
- Rect.cs