From 8a0b36be08fc33536db8868cbe59c7f022317ee7 Mon Sep 17 00:00:00 2001 From: Alistair Evans Date: Sat, 13 Jul 2024 10:21:13 +0100 Subject: [PATCH 1/3] Add DI specification test for ensuring externally provided instance services are not disposed when the provider is disposed. --- .../src/DependencyInjectionSpecificationTests.cs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/libraries/Microsoft.Extensions.DependencyInjection.Specification.Tests/src/DependencyInjectionSpecificationTests.cs b/src/libraries/Microsoft.Extensions.DependencyInjection.Specification.Tests/src/DependencyInjectionSpecificationTests.cs index dd910d35e102e8..5bb4c5b9dceb99 100644 --- a/src/libraries/Microsoft.Extensions.DependencyInjection.Specification.Tests/src/DependencyInjectionSpecificationTests.cs +++ b/src/libraries/Microsoft.Extensions.DependencyInjection.Specification.Tests/src/DependencyInjectionSpecificationTests.cs @@ -593,6 +593,22 @@ public void SafelyDisposeNestedProviderReferences() nester.Dispose(); } + [Fact] + public void ServiceInstanceAreNotDisposedWhenTheProviderIsDisposed() + { + // Arrange + var collection = new TestServiceCollection(); + var externalService = new FakeService(); + collection.AddSingleton(externalService); + var provider = CreateServiceProvider(services); + + // Act + ((IDisposable)rootProvider).Dispose(); + + // Assert + Assert.False(externalService.Disposed); + } + [Fact] public void SingletonServicesComeFromRootProvider() { From 93eb67f8647871a83d98a8194ad61834ec09f096 Mon Sep 17 00:00:00 2001 From: Alistair Evans Date: Sat, 13 Jul 2024 10:28:51 +0100 Subject: [PATCH 2/3] Fix name errors. --- .../src/DependencyInjectionSpecificationTests.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libraries/Microsoft.Extensions.DependencyInjection.Specification.Tests/src/DependencyInjectionSpecificationTests.cs b/src/libraries/Microsoft.Extensions.DependencyInjection.Specification.Tests/src/DependencyInjectionSpecificationTests.cs index 5bb4c5b9dceb99..be1c21cabdfcf3 100644 --- a/src/libraries/Microsoft.Extensions.DependencyInjection.Specification.Tests/src/DependencyInjectionSpecificationTests.cs +++ b/src/libraries/Microsoft.Extensions.DependencyInjection.Specification.Tests/src/DependencyInjectionSpecificationTests.cs @@ -600,10 +600,10 @@ public void ServiceInstanceAreNotDisposedWhenTheProviderIsDisposed() var collection = new TestServiceCollection(); var externalService = new FakeService(); collection.AddSingleton(externalService); - var provider = CreateServiceProvider(services); + var provider = CreateServiceProvider(collection); // Act - ((IDisposable)rootProvider).Dispose(); + ((IDisposable)provider).Dispose(); // Assert Assert.False(externalService.Disposed); From e98f2c0687a77e2b31e19b832a7cb1c9718949f3 Mon Sep 17 00:00:00 2001 From: Alistair Evans Date: Sat, 7 Sep 2024 12:13:42 +0100 Subject: [PATCH 3/3] Switch to the latest version of autofac --- ...tensions.DependencyInjection.ExternalContainers.Tests.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libraries/Microsoft.Extensions.DependencyInjection/tests/DI.External.Tests/Microsoft.Extensions.DependencyInjection.ExternalContainers.Tests.csproj b/src/libraries/Microsoft.Extensions.DependencyInjection/tests/DI.External.Tests/Microsoft.Extensions.DependencyInjection.ExternalContainers.Tests.csproj index 07eea0b4021952..415e1c7ddd3f83 100644 --- a/src/libraries/Microsoft.Extensions.DependencyInjection/tests/DI.External.Tests/Microsoft.Extensions.DependencyInjection.ExternalContainers.Tests.csproj +++ b/src/libraries/Microsoft.Extensions.DependencyInjection/tests/DI.External.Tests/Microsoft.Extensions.DependencyInjection.ExternalContainers.Tests.csproj @@ -18,7 +18,7 @@ - +