Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Xml / System / Xml / XPath / Internal / ContextQuery.cs / 1305376 / 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
- LinkConverter.cs
- ListBase.cs
- WorkflowService.cs
- SqlConnectionPoolProviderInfo.cs
- RegistrationServices.cs
- CodeGen.cs
- LineInfo.cs
- XmlAttributeAttribute.cs
- SystemIPInterfaceProperties.cs
- _ConnectionGroup.cs
- CompilerScopeManager.cs
- ConnectionPointCookie.cs
- DataControlPagerLinkButton.cs
- XmlHierarchyData.cs
- DataAdapter.cs
- MonthCalendar.cs
- Serializer.cs
- WebPartTracker.cs
- WinFormsSecurity.cs
- RuleSetBrowserDialog.cs
- SecUtil.cs
- EnumValAlphaComparer.cs
- WebFormDesignerActionService.cs
- PlainXmlDeserializer.cs
- ConfigXmlAttribute.cs
- ParameterCollection.cs
- FastEncoder.cs
- ErrorFormatterPage.cs
- WorkerRequest.cs
- x509store.cs
- Function.cs
- TransactionFormatter.cs
- ModuleElement.cs
- ListControl.cs
- CreateCardRequest.cs
- CommandHelper.cs
- AutomationProperties.cs
- MULTI_QI.cs
- GACIdentityPermission.cs
- CompiledRegexRunner.cs
- MULTI_QI.cs
- ExecutorLocksHeldException.cs
- StickyNoteContentControl.cs
- ReadOnlyMetadataCollection.cs
- BindingList.cs
- Marshal.cs
- AsyncSerializedWorker.cs
- XmlElement.cs
- ValuePattern.cs
- TypeToken.cs
- IISUnsafeMethods.cs
- BufferCache.cs
- VerificationAttribute.cs
- TextRangeEdit.cs
- SspiSafeHandles.cs
- EntityUtil.cs
- SplineKeyFrames.cs
- IResourceProvider.cs
- BufferManager.cs
- DomainLiteralReader.cs
- RowParagraph.cs
- Dynamic.cs
- SecurityChannelFaultConverter.cs
- formatstringdialog.cs
- XPathDocumentIterator.cs
- DeclarationUpdate.cs
- PaperSource.cs
- QueryResponse.cs
- PageHandlerFactory.cs
- ConfigurationPropertyCollection.cs
- RawStylusInputReport.cs
- TdsParser.cs
- UdpDiscoveryEndpointElement.cs
- Int32AnimationBase.cs
- CodeBinaryOperatorExpression.cs
- PageFunction.cs
- DecoderExceptionFallback.cs
- EdmFunctionAttribute.cs
- TreeViewImageIndexConverter.cs
- ApplyImportsAction.cs
- CompilationSection.cs
- SessionStateItemCollection.cs
- Msec.cs
- SHA384CryptoServiceProvider.cs
- HashHelper.cs
- FunctionParameter.cs
- PackageDigitalSignature.cs
- DeflateEmulationStream.cs
- DataGridColumn.cs
- WebBrowserProgressChangedEventHandler.cs
- OwnerDrawPropertyBag.cs
- COAUTHINFO.cs
- ControlCachePolicy.cs
- XmlSchemaAttributeGroupRef.cs
- UriExt.cs
- CorePropertiesFilter.cs
- VariableDesigner.xaml.cs
- Variant.cs
- RawStylusInputReport.cs
- RadioButton.cs