Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / Xml / System / Xml / XPath / Internal / ContextQuery.cs / 1 / ContextQuery.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; internal class ContextQuery : Query { protected XPathNavigator contextNode; public ContextQuery() { this.count = 0; } protected ContextQuery(ContextQuery other) : base(other) { this.contextNode = other.contextNode; // Don't need to clone here } public override void Reset() { count = 0; } public override XPathNavigator Current { get { return contextNode; } } public override object Evaluate(XPathNodeIterator context) { contextNode = context.Current; // We don't clone here. Because we never move it. count = 0; return this; } public override XPathNavigator Advance() { if (count == 0) { count = 1; return contextNode; } return null; } public override XPathNavigator MatchNode(XPathNavigator current) { return current; } public override XPathNodeIterator Clone() { return new ContextQuery(this); } public override XPathResultType StaticType { get { return XPathResultType.NodeSet; } } public override int CurrentPosition { get { return count; } } public override int Count { get { return 1; } } public override QueryProps Properties { get { return QueryProps.Merge | QueryProps.Cached | QueryProps.Position | QueryProps.Count; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //----------------------------------------------------------------------------- namespace MS.Internal.Xml.XPath { using System; using System.Xml; using System.Xml.XPath; using System.Diagnostics; internal class ContextQuery : Query { protected XPathNavigator contextNode; public ContextQuery() { this.count = 0; } protected ContextQuery(ContextQuery other) : base(other) { this.contextNode = other.contextNode; // Don't need to clone here } public override void Reset() { count = 0; } public override XPathNavigator Current { get { return contextNode; } } public override object Evaluate(XPathNodeIterator context) { contextNode = context.Current; // We don't clone here. Because we never move it. count = 0; return this; } public override XPathNavigator Advance() { if (count == 0) { count = 1; return contextNode; } return null; } public override XPathNavigator MatchNode(XPathNavigator current) { return current; } public override XPathNodeIterator Clone() { return new ContextQuery(this); } public override XPathResultType StaticType { get { return XPathResultType.NodeSet; } } public override int CurrentPosition { get { return count; } } public override int Count { get { return 1; } } public override QueryProps Properties { get { return QueryProps.Merge | QueryProps.Cached | QueryProps.Position | QueryProps.Count; } } } } // 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
- DataControlReference.cs
- XmlIterators.cs
- SqlInternalConnection.cs
- DataStreams.cs
- Relationship.cs
- OptimisticConcurrencyException.cs
- Size3D.cs
- WindowsRebar.cs
- ServiceModelStringsVersion1.cs
- TextSelectionHighlightLayer.cs
- PageParser.cs
- EntityContainerEmitter.cs
- DoubleAnimationUsingPath.cs
- ArcSegment.cs
- Image.cs
- EventEntry.cs
- CompilerErrorCollection.cs
- RSAOAEPKeyExchangeDeformatter.cs
- SecurityToken.cs
- SourceFileBuildProvider.cs
- TextEmbeddedObject.cs
- SaveRecipientRequest.cs
- _IPv6Address.cs
- TextViewBase.cs
- baseaxisquery.cs
- StreamGeometry.cs
- ContractBase.cs
- DateTimeConstantAttribute.cs
- ControlValuePropertyAttribute.cs
- FontStretch.cs
- ReferenceCountedObject.cs
- WindowsGrip.cs
- Attributes.cs
- ActiveXSite.cs
- RepeatBehaviorConverter.cs
- Parser.cs
- TraceContext.cs
- FunctionDetailsReader.cs
- KeyConverter.cs
- ParentQuery.cs
- ObjectToken.cs
- counter.cs
- DomainConstraint.cs
- AppDomainGrammarProxy.cs
- SqlDataSourceSelectingEventArgs.cs
- DataProtection.cs
- TreeNode.cs
- _FtpDataStream.cs
- CopyAttributesAction.cs
- HoistedLocals.cs
- CustomAttribute.cs
- ClientScriptManagerWrapper.cs
- WebPartDisplayModeEventArgs.cs
- AcceleratedTokenProvider.cs
- ToolStripHighContrastRenderer.cs
- XmlNodeList.cs
- MatrixIndependentAnimationStorage.cs
- VectorCollectionConverter.cs
- SimpleHandlerFactory.cs
- DataGridViewToolTip.cs
- EntityViewContainer.cs
- WindowsBrush.cs
- PerfCounters.cs
- TemplateBindingExpressionConverter.cs
- SelectionItemPattern.cs
- Quaternion.cs
- SmtpException.cs
- XmlSchemaAppInfo.cs
- RadialGradientBrush.cs
- ApplicationTrust.cs
- ActivationService.cs
- BitmapDecoder.cs
- KeyValuePairs.cs
- BevelBitmapEffect.cs
- InternalsVisibleToAttribute.cs
- GeneralTransform2DTo3D.cs
- DbSetClause.cs
- WorkflowService.cs
- TimeStampChecker.cs
- ZipIOExtraFieldZip64Element.cs
- XAMLParseException.cs
- EntityDataSourceEntityTypeFilterItem.cs
- RepeatButton.cs
- WinEventWrap.cs
- SqlStream.cs
- StreamWriter.cs
- ScriptingSectionGroup.cs
- PointLightBase.cs
- RequestCacheManager.cs
- ThrowOnMultipleAssignment.cs
- BasePattern.cs
- PointHitTestResult.cs
- LocalValueEnumerator.cs
- SelectionHighlightInfo.cs
- ControlType.cs
- SmtpDigestAuthenticationModule.cs
- ExeConfigurationFileMap.cs
- EditorPartCollection.cs
- _DisconnectOverlappedAsyncResult.cs
- InstanceNameConverter.cs