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
- CopyNodeSetAction.cs
- UnmanagedMemoryStreamWrapper.cs
- ToolStripComboBox.cs
- NamespaceMapping.cs
- BooleanKeyFrameCollection.cs
- DayRenderEvent.cs
- ResXResourceReader.cs
- ConfigurationValidatorBase.cs
- RegexTree.cs
- ConfigurationValues.cs
- SessionIDManager.cs
- AutoGeneratedFieldProperties.cs
- ListBindableAttribute.cs
- DbgUtil.cs
- TCEAdapterGenerator.cs
- DocumentReferenceCollection.cs
- InputMethodStateChangeEventArgs.cs
- ReachFixedDocumentSerializer.cs
- DesignConnectionCollection.cs
- SoapTypeAttribute.cs
- GenericsNotImplementedException.cs
- PenThreadPool.cs
- TypeToTreeConverter.cs
- MSHTMLHost.cs
- XmlChildNodes.cs
- TemplateManager.cs
- ClientTarget.cs
- Version.cs
- Effect.cs
- RTLAwareMessageBox.cs
- Expander.cs
- SynchronizedDispatch.cs
- Int32RectConverter.cs
- HtmlPhoneCallAdapter.cs
- HelpFileFileNameEditor.cs
- MatrixKeyFrameCollection.cs
- ButtonStandardAdapter.cs
- CopyNodeSetAction.cs
- XmlElementList.cs
- Update.cs
- WindowsListView.cs
- XPathDocumentNavigator.cs
- WebScriptEndpointElement.cs
- MappingModelBuildProvider.cs
- LoadRetryAsyncResult.cs
- ObjectSecurity.cs
- CodeAccessSecurityEngine.cs
- WmfPlaceableFileHeader.cs
- basevalidator.cs
- BufferedReadStream.cs
- EntityDataSourceWrapperPropertyDescriptor.cs
- AlignmentYValidation.cs
- RangeBaseAutomationPeer.cs
- ServiceAppDomainAssociationProvider.cs
- DynamicActionMessageFilter.cs
- EditorZoneAutoFormat.cs
- ZoneButton.cs
- EventEntry.cs
- SqlTopReducer.cs
- WindowsTokenRoleProvider.cs
- CheckPair.cs
- StringCollection.cs
- RawUIStateInputReport.cs
- CompilationUnit.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- WebReference.cs
- PassportAuthenticationModule.cs
- SizeChangedInfo.cs
- SystemIcmpV4Statistics.cs
- DesignBindingValueUIHandler.cs
- XamlGridLengthSerializer.cs
- BrowserCapabilitiesFactoryBase.cs
- SafeNativeMethods.cs
- BrowserCapabilitiesFactory.cs
- PowerEase.cs
- PrimitiveSchema.cs
- PrintPageEvent.cs
- OleAutBinder.cs
- InvalidPrinterException.cs
- ZipIOCentralDirectoryBlock.cs
- DataGridColumnHeaderAutomationPeer.cs
- CheckBox.cs
- GraphicsPathIterator.cs
- ApplicationSecurityInfo.cs
- XmlSerializerFaultFormatter.cs
- XmlName.cs
- UnsignedPublishLicense.cs
- ObjectTag.cs
- BinaryReader.cs
- UriTemplateVariablePathSegment.cs
- GACIdentityPermission.cs
- DataGridViewAutoSizeColumnsModeEventArgs.cs
- ScriptReference.cs
- OutputCacheProfile.cs
- StreamMarshaler.cs
- ActionFrame.cs
- BooleanSwitch.cs
- BufferModesCollection.cs
- CrossContextChannel.cs
- GeometryModel3D.cs