Class DynamicContext
Provides the evaluation context for fast execution and custom variables resolution.
Inheritance
Namespace: Umbraco.Core.Xml
Assembly: Umbraco.Core.dll
Syntax
public class DynamicContext : XsltContext, IXmlNamespaceResolver, IEnumerable
Remarks
This class is responsible for resolving variables during dynamic expression execution.
Discussed in http://weblogs.asp.net/cazzu/archive/2003/10/07/30888.aspx
Author: Daniel Cazzulino, blog
Constructors
View SourceDynamicContext()
Initializes a new instance of the DynamicContext class.
Declaration
public DynamicContext()
DynamicContext(NameTable)
Initializes a new instance of the DynamicContext class with the specified System.Xml.NameTable.
Declaration
public DynamicContext(NameTable table)
Parameters
Type | Name | Description |
---|---|---|
System.Xml.NameTable | table | The NameTable to use. |
DynamicContext(XmlNamespaceManager)
Initializes a new instance of the DynamicContext class.
Declaration
public DynamicContext(XmlNamespaceManager context)
Parameters
Type | Name | Description |
---|---|---|
System.Xml.XmlNamespaceManager | context | A previously filled context with the namespaces to use. |
DynamicContext(XmlNamespaceManager, NameTable)
Initializes a new instance of the DynamicContext class.
Declaration
public DynamicContext(XmlNamespaceManager context, NameTable table)
Parameters
Type | Name | Description |
---|---|---|
System.Xml.XmlNamespaceManager | context | A previously filled context with the namespaces to use. |
System.Xml.NameTable | table | The NameTable to use. |
Properties
View SourceWhitespace
Same as System.Xml.Xsl.XsltContext.
Declaration
public override bool Whitespace { get; }
Property Value
Type | Description |
---|---|
System.Boolean |
Methods
View SourceAddVariable(String, Object)
Adds the variable to the dynamic evaluation context.
Declaration
public void AddVariable(string name, object value)
Parameters
Type | Name | Description |
---|---|---|
System.String | name | The name of the variable to add to the context. |
System.Object | value | The value of the variable to add to the context. |
Remarks
Value type conversion for XPath evaluation is as follows:
CLR Type | XPath type |
---|---|
System.String | XPathResultType.String |
System.Double (or types that can be converted to) | XPathResultType.Number |
System.Boolean | XPathResultType.Boolean |
System.Xml.XPath.XPathNavigator | XPathResultType.Navigator |
System.Xml.XPath.XPathNodeIterator | XPathResultType.NodeSet |
Others | XPathResultType.Any |
note
See the topic "Compile, Select, Evaluate, and Matches with XPath and XPathExpressions" in MSDN documentation for additional information.
Exceptions
Type | Condition |
---|---|
System.ArgumentNullException | The |
CompareDocument(String, String)
Implementation equal to System.Xml.Xsl.XsltContext.
Declaration
public override int CompareDocument(string baseUri, string nextbaseUri)
Parameters
Type | Name | Description |
---|---|---|
System.String | baseUri | |
System.String | nextbaseUri |
Returns
Type | Description |
---|---|
System.Int32 |
Compile(String)
Shortcut method that compiles an expression using an empty navigator.
Declaration
public static XPathExpression Compile(string xpath)
Parameters
Type | Name | Description |
---|---|---|
System.String | xpath | The expression to compile |
Returns
Type | Description |
---|---|
System.Xml.XPath.XPathExpression | A compiled System.Xml.XPath.XPathExpression. |
LookupNamespace(String)
Same as System.Xml.XmlNamespaceManager.
Declaration
public override string LookupNamespace(string prefix)
Parameters
Type | Name | Description |
---|---|---|
System.String | prefix |
Returns
Type | Description |
---|---|
System.String |
LookupPrefix(String)
Same as System.Xml.XmlNamespaceManager.
Declaration
public override string LookupPrefix(string uri)
Parameters
Type | Name | Description |
---|---|---|
System.String | uri |
Returns
Type | Description |
---|---|
System.String |
PreserveWhitespace(XPathNavigator)
Same as System.Xml.Xsl.XsltContext.
Declaration
public override bool PreserveWhitespace(XPathNavigator node)
Parameters
Type | Name | Description |
---|---|---|
System.Xml.XPath.XPathNavigator | node |
Returns
Type | Description |
---|---|
System.Boolean |
ResolveFunction(String, String, XPathResultType[])
See System.Xml.Xsl.XsltContext. Not used in our implementation.
Declaration
public override IXsltContextFunction ResolveFunction(string prefix, string name, XPathResultType[] argTypes)
Parameters
Type | Name | Description |
---|---|---|
System.String | prefix | |
System.String | name | |
System.Xml.XPath.XPathResultType[] | argTypes |
Returns
Type | Description |
---|---|
System.Xml.Xsl.IXsltContextFunction |
ResolveVariable(String, String)
Resolves the dynamic variables added to the context. See System.Xml.Xsl.XsltContext.
Declaration
public override IXsltContextVariable ResolveVariable(string prefix, string name)
Parameters
Type | Name | Description |
---|---|---|
System.String | prefix | |
System.String | name |
Returns
Type | Description |
---|---|
System.Xml.Xsl.IXsltContextVariable |