diff --git a/src/Umbraco.Abstractions/UmbracoContextReference.cs b/src/Umbraco.Abstractions/UmbracoContextReference.cs
index 3cd97cd77b..bd021494e6 100644
--- a/src/Umbraco.Abstractions/UmbracoContextReference.cs
+++ b/src/Umbraco.Abstractions/UmbracoContextReference.cs
@@ -14,22 +14,24 @@ namespace Umbraco.Web
///
public class UmbracoContextReference : IDisposable //fixme - should we inherit from DisposableObjectSlim?
{
+ private readonly IUmbracoContextAccessor _umbracoContextAccessor;
private bool _disposed;
///
/// Initializes a new instance of the class.
///
- internal UmbracoContextReference(bool isRoot, IUmbracoContext umbracoContext)
+ internal UmbracoContextReference(IUmbracoContext umbracoContext, bool isRoot, IUmbracoContextAccessor umbracoContextAccessor)
{
IsRoot = isRoot;
UmbracoContext = umbracoContext;
+ _umbracoContextAccessor = umbracoContextAccessor;
}
///
/// Gets the .
///
- public IUmbracoContext UmbracoContext { get; private set; }
+ public IUmbracoContext UmbracoContext { get; }
///
/// Gets a value indicating whether the reference is a root reference.
@@ -49,7 +51,7 @@ namespace Umbraco.Web
if (IsRoot)
{
UmbracoContext.Dispose();
- UmbracoContext = null;
+ _umbracoContextAccessor.UmbracoContext = null;
}
GC.SuppressFinalize(this);
diff --git a/src/Umbraco.Web/UmbracoContextFactory.cs b/src/Umbraco.Web/UmbracoContextFactory.cs
index d627d9e823..a84e51eda3 100644
--- a/src/Umbraco.Web/UmbracoContextFactory.cs
+++ b/src/Umbraco.Web/UmbracoContextFactory.cs
@@ -77,13 +77,13 @@ namespace Umbraco.Web
{
var currentUmbracoContext = _umbracoContextAccessor.UmbracoContext;
if (currentUmbracoContext != null)
- return new UmbracoContextReference(false, currentUmbracoContext);
+ return new UmbracoContextReference(currentUmbracoContext, false, _umbracoContextAccessor);
var umbracoContext = CreateUmbracoContext();
_umbracoContextAccessor.UmbracoContext = umbracoContext;
- return new UmbracoContextReference(true, umbracoContext);
+ return new UmbracoContextReference(umbracoContext, true, _umbracoContextAccessor);
}
// dummy TextWriter that does not write