Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Xml / System / Xml / XPath / Internal / XPathSelectionIterator.cs / 1305376 / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- PropertyInformation.cs
- AmbientProperties.cs
- PrintDocument.cs
- SpellerStatusTable.cs
- FamilyMapCollection.cs
- FontInfo.cs
- Label.cs
- AutomationIdentifierGuids.cs
- TransformerInfo.cs
- NamespaceTable.cs
- ProgressBarRenderer.cs
- DirectoryRootQuery.cs
- QilValidationVisitor.cs
- SettingsPropertyWrongTypeException.cs
- MembershipUser.cs
- BindableTemplateBuilder.cs
- TextRunProperties.cs
- AdCreatedEventArgs.cs
- AssemblySettingAttributes.cs
- MouseOverProperty.cs
- OleDbMetaDataFactory.cs
- Attributes.cs
- ColorConverter.cs
- ToolBarButtonDesigner.cs
- AuthenticationService.cs
- TransformConverter.cs
- SettingsPropertyValueCollection.cs
- FixedDocument.cs
- DurableTimerExtension.cs
- XmlSchemaParticle.cs
- CompressionTransform.cs
- OleDbParameterCollection.cs
- GlyphTypeface.cs
- GridViewDeleteEventArgs.cs
- DateTime.cs
- XmlSignatureProperties.cs
- followingsibling.cs
- Quaternion.cs
- ListControlDesigner.cs
- ContainerSelectorActiveEvent.cs
- SurrogateChar.cs
- Serializer.cs
- StateMachineSubscriptionManager.cs
- OrderingInfo.cs
- PageSettings.cs
- SupportedAddressingMode.cs
- shaperfactoryquerycachekey.cs
- RepeatBehavior.cs
- HexParser.cs
- DataSourceComponent.cs
- ConstructorBuilder.cs
- PeerContact.cs
- RSAProtectedConfigurationProvider.cs
- MetadataItemSerializer.cs
- Selection.cs
- Blend.cs
- TableRowCollection.cs
- CreateDataSourceDialog.cs
- TaskDesigner.cs
- HighContrastHelper.cs
- AttributeQuery.cs
- ResXBuildProvider.cs
- ImageSource.cs
- CommandEventArgs.cs
- TypeBuilderInstantiation.cs
- UrlAuthorizationModule.cs
- QueryStringHandler.cs
- XsltException.cs
- SemaphoreFullException.cs
- Crypto.cs
- _DisconnectOverlappedAsyncResult.cs
- HotSpot.cs
- RequestCacheEntry.cs
- PassportIdentity.cs
- XmlValueConverter.cs
- AssertFilter.cs
- ListViewDataItem.cs
- ConfigXmlElement.cs
- ServiceThrottlingBehavior.cs
- LinkClickEvent.cs
- DeferredSelectedIndexReference.cs
- CharConverter.cs
- AccessDataSource.cs
- ConfigXmlSignificantWhitespace.cs
- BypassElementCollection.cs
- UserNameSecurityToken.cs
- ObjectToIdCache.cs
- SrgsRuleRef.cs
- DataControlFieldCollection.cs
- DesignerAdRotatorAdapter.cs
- WsdlContractConversionContext.cs
- PropertyChangedEventArgs.cs
- UICuesEvent.cs
- FastEncoderStatics.cs
- GridProviderWrapper.cs
- OrderPreservingPipeliningMergeHelper.cs
- TimeSpan.cs
- ScopeElement.cs
- DiagnosticStrings.cs
- ToolStripProgressBar.cs