Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Xml / System / Xml / XPath / Internal / VariableQuery.cs / 1305376 / VariableQuery.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; using System.Xml.Xsl; internal sealed class VariableQuery : ExtensionQuery { private IXsltContextVariable variable; public VariableQuery(string name, string prefix) : base(prefix, name) {} private VariableQuery(VariableQuery other) : base(other) { this.variable = other.variable; } public override void SetXsltContext(XsltContext context) { if (context == null) { throw XPathException.Create(Res.Xp_NoContext); } if (this.xsltContext != context) { xsltContext = context; variable = xsltContext.ResolveVariable(prefix, name); // Since null is allowed for ResolveFunction, allow it for ResolveVariable as well if (variable == null) { throw XPathException.Create(Res.Xp_UndefVar, QName); } } } public override object Evaluate(XPathNodeIterator nodeIterator) { if (xsltContext == null) { throw XPathException.Create(Res.Xp_NoContext); } return ProcessResult(variable.Evaluate(xsltContext)); } public override XPathResultType StaticType { get { if (variable != null) { // Temp. fix to overcome dependency on static type return GetXPathType(Evaluate(null)); } XPathResultType result = variable != null ? variable.VariableType : XPathResultType.Any; if (result == XPathResultType.Error) { // In v.1 we confused Error & Any so now for backward compatibility we should allow users to return any of them. result = XPathResultType.Any; } return result; } } public override XPathNodeIterator Clone() { return new VariableQuery(this); } public override void PrintQuery(XmlWriter w) { w.WriteStartElement(this.GetType().Name); w.WriteAttributeString("name", prefix.Length != 0 ? prefix + ':' + name : name); w.WriteEndElement(); } } } // 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
- DataPagerFieldItem.cs
- _DisconnectOverlappedAsyncResult.cs
- RangeContentEnumerator.cs
- TemplateComponentConnector.cs
- CatalogPart.cs
- DrawingContext.cs
- _NetRes.cs
- BrushProxy.cs
- BaseContextMenu.cs
- TableSectionStyle.cs
- FloatUtil.cs
- XhtmlBasicTextBoxAdapter.cs
- _LazyAsyncResult.cs
- WindowsTooltip.cs
- OutOfMemoryException.cs
- Int64Storage.cs
- XmlSchemaExternal.cs
- ReliabilityContractAttribute.cs
- WebServiceEnumData.cs
- AddingNewEventArgs.cs
- WindowsScroll.cs
- XmlSchemaComplexContentExtension.cs
- CheckBoxStandardAdapter.cs
- ExtensionElement.cs
- ObjectAnimationBase.cs
- PtsHelper.cs
- CssStyleCollection.cs
- ToolStripItemGlyph.cs
- MailSettingsSection.cs
- StrokeDescriptor.cs
- Thickness.cs
- XD.cs
- ObjRef.cs
- Guid.cs
- EditorAttribute.cs
- RowSpanVector.cs
- WebServiceEnumData.cs
- BasicExpandProvider.cs
- XmlSchemaParticle.cs
- CodeExpressionCollection.cs
- SiteMapProvider.cs
- GlobalAllocSafeHandle.cs
- ItemList.cs
- ContextMarshalException.cs
- DataTableNewRowEvent.cs
- TextRangeEditTables.cs
- AttributeData.cs
- CalendarAutomationPeer.cs
- UnsafeNativeMethods.cs
- DriveInfo.cs
- DefaultSerializationProviderAttribute.cs
- DbException.cs
- Rect.cs
- UrlAuthFailureHandler.cs
- HtmlContainerControl.cs
- Material.cs
- HiddenFieldPageStatePersister.cs
- ColorConverter.cs
- BindingMAnagerBase.cs
- RepeatBehaviorConverter.cs
- XamlPathDataSerializer.cs
- Msec.cs
- ImageSource.cs
- ToolboxComponentsCreatedEventArgs.cs
- WebPartZoneCollection.cs
- SingleResultAttribute.cs
- DataGridViewRowPrePaintEventArgs.cs
- unsafenativemethodsother.cs
- NameTable.cs
- ExtensibleClassFactory.cs
- DBCommandBuilder.cs
- WeakEventManager.cs
- ResourceDescriptionAttribute.cs
- XmlSchemaGroup.cs
- CancellableEnumerable.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- FixedPage.cs
- WindowsRebar.cs
- TableLayoutSettings.cs
- PrivilegedConfigurationManager.cs
- IMembershipProvider.cs
- LOSFormatter.cs
- XmlNullResolver.cs
- PeerTransportSecuritySettings.cs
- EncoderExceptionFallback.cs
- NetworkInterface.cs
- DecoderBestFitFallback.cs
- AxisAngleRotation3D.cs
- SelectedCellsChangedEventArgs.cs
- MarkupCompilePass2.cs
- StaticExtension.cs
- ScaleTransform3D.cs
- webproxy.cs
- WindowsListView.cs
- DecoratedNameAttribute.cs
- PerformanceCounterPermissionAttribute.cs
- SoapSchemaMember.cs
- TextViewBase.cs
- PrimarySelectionAdorner.cs
- ValidationHelper.cs