Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Xml / System / Xml / XPath / Internal / XPathSelectionIterator.cs / 1 / XPathSelectionIterator.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //----------------------------------------------------------------------------- namespace MS.Internal.Xml.XPath { using System; using System.Xml; using System.Xml.XPath; using System.Diagnostics; using System.Globalization; // We need this wrapper object to: // 1. Calculate position // 2. Protect internal query.Current from user who may call MoveNext(). internal class XPathSelectionIterator : ResetableIterator { private XPathNavigator nav; private Query query; private int position; internal XPathSelectionIterator(XPathNavigator nav, Query query) { this.nav = nav.Clone(); this.query = query; } protected XPathSelectionIterator(XPathSelectionIterator it) { this.nav = it.nav.Clone(); this.query = (Query) it.query.Clone(); this.position = it.position; } public override void Reset() { this.query.Reset(); } public override bool MoveNext() { XPathNavigator n = query.Advance(); if( n != null ) { position++; if (!nav.MoveTo(n)) { nav = n.Clone(); } return true; } return false; } public override int Count { get { return query.Count; } } public override XPathNavigator Current { get { return nav; } } public override int CurrentPosition { get { return position; } } public override XPathNodeIterator Clone() { return new XPathSelectionIterator(this); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- FilterableAttribute.cs
- GenericsInstances.cs
- streamingZipPartStream.cs
- DriveNotFoundException.cs
- ParallelQuery.cs
- InteropAutomationProvider.cs
- MatcherBuilder.cs
- SqlReferenceCollection.cs
- DrawingServices.cs
- EdmToObjectNamespaceMap.cs
- RoutedEvent.cs
- PeerNameResolver.cs
- CounterSampleCalculator.cs
- NameScope.cs
- MultiDataTrigger.cs
- DataGridViewRowPostPaintEventArgs.cs
- ShadowGlyph.cs
- InitializingNewItemEventArgs.cs
- DiagnosticsConfiguration.cs
- DesignerForm.cs
- WebPartRestoreVerb.cs
- SqlXmlStorage.cs
- TreeNodeCollection.cs
- ComponentCommands.cs
- cookie.cs
- EmbeddedMailObjectsCollection.cs
- DataFormats.cs
- COM2IDispatchConverter.cs
- Size3D.cs
- DispatcherHookEventArgs.cs
- ReferenceConverter.cs
- SqlDependencyUtils.cs
- StylusCollection.cs
- XmlCharType.cs
- PropertyChange.cs
- ModelTreeEnumerator.cs
- HashAlgorithm.cs
- DataGridViewAdvancedBorderStyle.cs
- PermissionSetTriple.cs
- DataServiceProviderWrapper.cs
- Crc32.cs
- BooleanAnimationBase.cs
- DbConnectionClosed.cs
- _DigestClient.cs
- ScrollPatternIdentifiers.cs
- RenderTargetBitmap.cs
- EventHandlerService.cs
- TextModifier.cs
- DataGridViewColumnCollectionEditor.cs
- RootAction.cs
- EntityDataSourceStatementEditor.cs
- XmlAutoDetectWriter.cs
- ChannelServices.cs
- HandlerBase.cs
- AttachmentCollection.cs
- ProgressBar.cs
- RepeatInfo.cs
- StreamGeometry.cs
- QuestionEventArgs.cs
- NewExpression.cs
- WizardStepBase.cs
- DockingAttribute.cs
- PerspectiveCamera.cs
- TypeDescriptor.cs
- SpecularMaterial.cs
- CorrelationManager.cs
- SafeNativeMethods.cs
- ErrorWrapper.cs
- AutomationEvent.cs
- UpdatePanelTrigger.cs
- OracleRowUpdatedEventArgs.cs
- TableLayout.cs
- ListViewItem.cs
- ControlTemplate.cs
- WCFBuildProvider.cs
- __TransparentProxy.cs
- ProgressBar.cs
- DrawingGroupDrawingContext.cs
- DriveInfo.cs
- UrlParameterWriter.cs
- Properties.cs
- FormsAuthenticationModule.cs
- PeerObject.cs
- HashCodeCombiner.cs
- SystemIPAddressInformation.cs
- IgnoreSectionHandler.cs
- SecurityUtils.cs
- CloudCollection.cs
- AsyncOperation.cs
- TrackBar.cs
- InvalidEnumArgumentException.cs
- ResourceDescriptionAttribute.cs
- WebPartMinimizeVerb.cs
- TableLayoutPanelCellPosition.cs
- SubqueryRules.cs
- WebPartRestoreVerb.cs
- MultiAsyncResult.cs
- ClearTypeHintValidation.cs
- RowVisual.cs
- EasingKeyFrames.cs