Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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
- DocumentXmlWriter.cs
- ApplicationActivator.cs
- Dictionary.cs
- EntityProviderFactory.cs
- DocumentOrderComparer.cs
- TextParaLineResult.cs
- XmlSchemaChoice.cs
- Line.cs
- StandardOleMarshalObject.cs
- WorkerRequest.cs
- Publisher.cs
- COM2ICategorizePropertiesHandler.cs
- SHA384Managed.cs
- EUCJPEncoding.cs
- XmlLanguageConverter.cs
- DbFunctionCommandTree.cs
- SystemWebCachingSectionGroup.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- AccessText.cs
- SqlDataSourceFilteringEventArgs.cs
- NegotiateStream.cs
- XhtmlTextWriter.cs
- ProtocolsConfigurationEntry.cs
- BitmapEffectrendercontext.cs
- Base64Stream.cs
- SymmetricAlgorithm.cs
- CellCreator.cs
- UserPreference.cs
- RNGCryptoServiceProvider.cs
- SchemaComplexType.cs
- Vector3DKeyFrameCollection.cs
- TextServicesCompartment.cs
- ObjectSet.cs
- RecordManager.cs
- DefaultEvaluationContext.cs
- ExtenderControl.cs
- NavigationService.cs
- MatrixUtil.cs
- CustomAttributeBuilder.cs
- FocusTracker.cs
- TextFormatterHost.cs
- MimeTypeAttribute.cs
- VarRemapper.cs
- DetailsViewUpdatedEventArgs.cs
- _Win32.cs
- KerberosSecurityTokenProvider.cs
- ServicesExceptionNotHandledEventArgs.cs
- sqlpipe.cs
- SiteMapDataSource.cs
- CodeAttachEventStatement.cs
- DataControlFieldCollection.cs
- Method.cs
- UriScheme.cs
- PointAnimationBase.cs
- ScrollBar.cs
- RewritingPass.cs
- TcpChannelFactory.cs
- MemberProjectionIndex.cs
- TakeOrSkipQueryOperator.cs
- SamlAttributeStatement.cs
- ListViewVirtualItemsSelectionRangeChangedEvent.cs
- EventProviderWriter.cs
- AssociatedControlConverter.cs
- UInt16Converter.cs
- ListView.cs
- ImageFormatConverter.cs
- PathBox.cs
- HtmlTable.cs
- MessageHeaderT.cs
- StreamUpdate.cs
- CommandLibraryHelper.cs
- AsnEncodedData.cs
- X509RecipientCertificateServiceElement.cs
- HttpInputStream.cs
- ContentPresenter.cs
- HostingEnvironmentException.cs
- TextStore.cs
- HtmlControlAdapter.cs
- IsolatedStoragePermission.cs
- PbrsForward.cs
- TemplateParser.cs
- LocalizabilityAttribute.cs
- DynamicPropertyReader.cs
- FormsAuthenticationEventArgs.cs
- ProofTokenCryptoHandle.cs
- TypeElement.cs
- DataRecordInfo.cs
- SpecialNameAttribute.cs
- TracedNativeMethods.cs
- BitmapEffectGeneralTransform.cs
- CqlParser.cs
- WorkflowServiceNamespace.cs
- SqlDataSourceTableQuery.cs
- XmlCompatibilityReader.cs
- TextSegment.cs
- RadioButtonList.cs
- BindingList.cs
- QueryNode.cs
- _NegotiateClient.cs
- Event.cs