From c85326389481f6f93b835904cee77d453ca87f30 Mon Sep 17 00:00:00 2001 From: Shannon Date: Fri, 16 Jan 2015 17:24:47 +1100 Subject: [PATCH] Ensures that any instances created with the ManyObjectsResolverBase that have an HTTP lifetime are disposed of at the end of the request --- .../ObjectResolution/ManyObjectsResolverBase.cs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Core/ObjectResolution/ManyObjectsResolverBase.cs b/src/Umbraco.Core/ObjectResolution/ManyObjectsResolverBase.cs index dc889975a2..1cfa81228a 100644 --- a/src/Umbraco.Core/ObjectResolution/ManyObjectsResolverBase.cs +++ b/src/Umbraco.Core/ObjectResolution/ManyObjectsResolverBase.cs @@ -237,7 +237,14 @@ namespace Umbraco.Core.ObjectResolution // create new instances per HttpContext if (CurrentHttpContext.Items[_httpContextKey] == null) { - CurrentHttpContext.Items[_httpContextKey] = CreateInstances().ToArray(); + var instances = CreateInstances().ToArray(); + var disposableInstances = instances.OfType(); + //Ensure anything resolved that is IDisposable is disposed when the request termintates + foreach (var disposable in disposableInstances) + { + CurrentHttpContext.DisposeOnPipelineCompleted(disposable); + } + CurrentHttpContext.Items[_httpContextKey] = instances; } return (TResolved[])CurrentHttpContext.Items[_httpContextKey];