@@ -32,14 +32,14 @@ namespace JsonApiDotNetCore.Builders
3232 /// A utility class that builds a JsonApi application. It registers all required services
3333 /// and allows the user to override parts of the startup configuration.
3434 /// </summary>
35- internal sealed class JsonApiApplicationBuilder : IDisposable
35+ internal sealed class JsonApiApplicationBuilder
3636 {
3737 private readonly JsonApiOptions _options = new JsonApiOptions ( ) ;
3838 private readonly IServiceCollection _services ;
3939 private IServiceDiscoveryFacade _serviceDiscoveryFacade ;
4040 private IResourceGraphBuilder _resourceGraphBuilder ;
4141 private readonly IMvcCoreBuilder _mvcBuilder ;
42- private readonly List < ServiceProvider > _intermediateServiceProviders = new List < ServiceProvider > ( ) ;
42+ private ServiceProvider _serviceProviderToDispose ;
4343
4444 public JsonApiApplicationBuilder ( IServiceCollection services ,
4545 IMvcCoreBuilder mvcBuilder )
@@ -76,7 +76,7 @@ public void ConfigureAutoDiscovery(Action<IServiceDiscoveryFacade> configureAuto
7676 _serviceDiscoveryFacade = intermediateProvider . GetRequiredService < IServiceDiscoveryFacade > ( ) ;
7777 _resourceGraphBuilder = intermediateProvider . GetRequiredService < IResourceGraphBuilder > ( ) ;
7878 RegisterDiscoverableAssemblies ( configureAutoDiscovery , _serviceDiscoveryFacade ) ;
79- _intermediateServiceProviders . Add ( intermediateProvider ) ;
79+ _serviceProviderToDispose = intermediateProvider ;
8080 }
8181
8282 /// <summary>
@@ -91,8 +91,6 @@ public void AddResourceGraph(Type dbContextType, Action<IResourceGraphBuilder> c
9191 UserConfigureResources ( configureResources , _resourceGraphBuilder ) ;
9292 _services . AddSingleton ( _resourceGraphBuilder . Build ( ) ) ;
9393 }
94-
95- // _intermediateServiceProviders.Add(intermediateProvider);
9694 }
9795
9896 /// <summary>
@@ -139,6 +137,7 @@ public void ConfigureMvc()
139137 public void DiscoverInjectables ( )
140138 {
141139 _serviceDiscoveryFacade . DiscoverInjectables ( ) ;
140+ _serviceProviderToDispose . Dispose ( ) ;
142141 }
143142
144143 /// <summary>
@@ -187,15 +186,7 @@ public void ConfigureServices(Type dbContextType)
187186
188187 _services . AddScoped < IInverseRelationships , InverseRelationships > ( ) ;
189188 }
190-
191- public void Dispose ( )
192- {
193- foreach ( var sp in _intermediateServiceProviders )
194- {
195- sp . Dispose ( ) ;
196- }
197- }
198-
189+
199190 private void RegisterDiscoverableAssemblies ( Action < IServiceDiscoveryFacade > configureAutoDiscovery ,
200191 IServiceDiscoveryFacade serviceDiscoveryFacade )
201192 {
0 commit comments