From d7d696964cbc4d7d5d00a317bb52a851aa76c3c6 Mon Sep 17 00:00:00 2001
From: Caleb Kiage <747955+calebkiage@users.noreply.github.com>
Date: Wed, 31 Jul 2024 15:23:52 +0300
Subject: [PATCH 1/3] fix: dispose IServiceProvider in
MicrosoftDependencyResolver
---
.../MicrosoftDependencyResolver.cs | 29 ++++++++++++++++++-
.../SplatMicrosoftExtensions.cs | 6 ++++
2 files changed, 34 insertions(+), 1 deletion(-)
diff --git a/src/Splat.Microsoft.Extensions.DependencyInjection/MicrosoftDependencyResolver.cs b/src/Splat.Microsoft.Extensions.DependencyInjection/MicrosoftDependencyResolver.cs
index bb5ad06c9..e36728d18 100644
--- a/src/Splat.Microsoft.Extensions.DependencyInjection/MicrosoftDependencyResolver.cs
+++ b/src/Splat.Microsoft.Extensions.DependencyInjection/MicrosoftDependencyResolver.cs
@@ -12,7 +12,7 @@ namespace Splat.Microsoft.Extensions.DependencyInjection;
/// Microsoft DI implementation for .
///
///
-public class MicrosoftDependencyResolver : IDependencyResolver
+public class MicrosoftDependencyResolver : IDependencyResolver, IAsyncDisposable
{
private const string ImmutableExceptionMessage = "This container has already been built and cannot be modified.";
private readonly object _syncLock = new();
@@ -68,6 +68,7 @@ public void UpdateContainer(IServiceProvider serviceProvider)
lock (_syncLock)
{
_serviceCollection = null;
+ DisposeServiceProvider(_serviceProvider);
_serviceProvider = serviceProvider;
_isImmutable = true;
}
@@ -144,6 +145,7 @@ public virtual void Register(Func