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
- RoleManagerModule.cs
- _ShellExpression.cs
- MethodCallTranslator.cs
- Composition.cs
- ZipArchive.cs
- CqlGenerator.cs
- DataGridViewCellStyle.cs
- SqlDataAdapter.cs
- StringUtil.cs
- SoapSchemaExporter.cs
- ConfigurationFileMap.cs
- CriticalFinalizerObject.cs
- IisTraceWebEventProvider.cs
- TextServicesCompartmentEventSink.cs
- DispatchChannelSink.cs
- DataGridSortingEventArgs.cs
- StatusBar.cs
- ListViewTableCell.cs
- InternalMappingException.cs
- FilteredDataSetHelper.cs
- EditableRegion.cs
- SystemWebSectionGroup.cs
- InputLanguageProfileNotifySink.cs
- SqlRowUpdatingEvent.cs
- Filter.cs
- PageCodeDomTreeGenerator.cs
- CompiledXpathExpr.cs
- XXXOnTypeBuilderInstantiation.cs
- _BaseOverlappedAsyncResult.cs
- MimeFormatExtensions.cs
- AssertFilter.cs
- XmlDesignerDataSourceView.cs
- Menu.cs
- EncoderFallback.cs
- XmlSchemaCollection.cs
- XmlSchemaSet.cs
- GroupItemAutomationPeer.cs
- LineServicesCallbacks.cs
- dbenumerator.cs
- NativeMethods.cs
- ContractUtils.cs
- SHA384Managed.cs
- Path.cs
- Binding.cs
- ExpressionBindingCollection.cs
- CustomErrorsSectionWrapper.cs
- UxThemeWrapper.cs
- TextServicesCompartment.cs
- GotoExpression.cs
- DocumentViewerHelper.cs
- Roles.cs
- ApplicationSettingsBase.cs
- FieldToken.cs
- ViewgenGatekeeper.cs
- Baml2006KeyRecord.cs
- SecurityTokenProvider.cs
- TrackingMemoryStream.cs
- Predicate.cs
- AttachedPropertiesService.cs
- BulletedList.cs
- Track.cs
- FileAuthorizationModule.cs
- ToolStripContentPanelRenderEventArgs.cs
- SpecialFolderEnumConverter.cs
- KeyFrames.cs
- DeclarativeCatalogPart.cs
- FlagsAttribute.cs
- DataGridViewCellStyle.cs
- WebEvents.cs
- EditorZone.cs
- WebHttpSecurity.cs
- LinkedResourceCollection.cs
- GacUtil.cs
- TreeNodeCollection.cs
- BinaryWriter.cs
- DBNull.cs
- XpsFilter.cs
- ColorAnimationUsingKeyFrames.cs
- BindToObject.cs
- TableRowGroup.cs
- StringUtil.cs
- Point3DCollection.cs
- XmlNode.cs
- WinEventWrap.cs
- DefaultHttpHandler.cs
- DataGridViewLayoutData.cs
- XmlWellformedWriter.cs
- RSAPKCS1KeyExchangeFormatter.cs
- ObjectManager.cs
- Monitor.cs
- SqlNotificationEventArgs.cs
- XmlSerializationReader.cs
- NativeMethodsOther.cs
- remotingproxy.cs
- DES.cs
- LabelLiteral.cs
- MaskPropertyEditor.cs
- SubMenuStyle.cs
- MgmtConfigurationRecord.cs
- HtmlInputSubmit.cs