diff --git a/src/Umbraco.Web/PublishedCache/ContextualPublishedCache.cs b/src/Umbraco.Web/PublishedCache/ContextualPublishedCache.cs
index a4634e5331..b5c3d850d2 100644
--- a/src/Umbraco.Web/PublishedCache/ContextualPublishedCache.cs
+++ b/src/Umbraco.Web/PublishedCache/ContextualPublishedCache.cs
@@ -201,6 +201,12 @@ namespace Umbraco.Web.PublishedCache
/// The XPath navigator.
public abstract XPathNavigator GetXPathNavigator(bool preview);
+ ///
+ /// Gets a value indicating whether GetXPathNavigator returns an XPathNavigator
+ /// and that navigator is a NavigableNavigator.
+ ///
+ public abstract bool XPathNavigatorIsNavigable { get; }
+
///
/// Gets a value indicating whether the underlying non-contextual cache contains content.
///
diff --git a/src/Umbraco.Web/PublishedCache/ContextualPublishedCacheOfT.cs b/src/Umbraco.Web/PublishedCache/ContextualPublishedCacheOfT.cs
index 9e221cbb1a..d759153419 100644
--- a/src/Umbraco.Web/PublishedCache/ContextualPublishedCacheOfT.cs
+++ b/src/Umbraco.Web/PublishedCache/ContextualPublishedCacheOfT.cs
@@ -132,6 +132,12 @@ namespace Umbraco.Web.PublishedCache
return _cache.GetXPathNavigator(UmbracoContext, preview);
}
+ ///
+ /// Gets a value indicating whether GetXPathNavigator returns an XPathNavigator
+ /// and that navigator is a NavigableNavigator.
+ ///
+ public override bool XPathNavigatorIsNavigable { get { return _cache.XPathNavigatorIsNavigable; } }
+
///
/// Gets a value indicating whether the underlying non-contextual cache contains content.
///
diff --git a/src/Umbraco.Web/PublishedCache/IPublishedCache.cs b/src/Umbraco.Web/PublishedCache/IPublishedCache.cs
index 16986f0148..a900689350 100644
--- a/src/Umbraco.Web/PublishedCache/IPublishedCache.cs
+++ b/src/Umbraco.Web/PublishedCache/IPublishedCache.cs
@@ -88,6 +88,12 @@ namespace Umbraco.Web.PublishedCache
/// The value of overrides the context.
XPathNavigator GetXPathNavigator(UmbracoContext umbracoContext, bool preview);
+ ///
+ /// Gets a value indicating whether GetXPathNavigator returns an XPathNavigator
+ /// and that navigator is a NavigableNavigator.
+ ///
+ bool XPathNavigatorIsNavigable { get; }
+
///
/// Gets a value indicating whether the cache contains published content.
///
diff --git a/src/Umbraco.Web/PublishedCache/XmlPublishedCache/PublishedContentCache.cs b/src/Umbraco.Web/PublishedCache/XmlPublishedCache/PublishedContentCache.cs
index df143ed8e3..6b82f278be 100644
--- a/src/Umbraco.Web/PublishedCache/XmlPublishedCache/PublishedContentCache.cs
+++ b/src/Umbraco.Web/PublishedCache/XmlPublishedCache/PublishedContentCache.cs
@@ -320,6 +320,8 @@ namespace Umbraco.Web.PublishedCache.XmlPublishedCache
return xml.CreateNavigator();
}
+ public virtual bool XPathNavigatorIsNavigable { get { return false; } }
+
#endregion
#region Legacy Xml
diff --git a/src/Umbraco.Web/PublishedCache/XmlPublishedCache/PublishedMediaCache.cs b/src/Umbraco.Web/PublishedCache/XmlPublishedCache/PublishedMediaCache.cs
index c0f156de87..03c44f34c9 100644
--- a/src/Umbraco.Web/PublishedCache/XmlPublishedCache/PublishedMediaCache.cs
+++ b/src/Umbraco.Web/PublishedCache/XmlPublishedCache/PublishedMediaCache.cs
@@ -92,6 +92,8 @@ namespace Umbraco.Web.PublishedCache.XmlPublishedCache
throw new NotImplementedException("PublishedMediaCache does not support XPath.");
}
+ public bool XPathNavigatorIsNavigable { get { return false; } }
+
public virtual bool HasContent(UmbracoContext context, bool preview) { throw new NotImplementedException(); }
private ExamineManager GetExamineManagerSafe()