@@ -32,14 +32,14 @@ namespace JsonApiDotNetCore.Builders
32
32
/// A utility class that builds a JsonApi application. It registers all required services
33
33
/// and allows the user to override parts of the startup configuration.
34
34
/// </summary>
35
- internal sealed class JsonApiApplicationBuilder : IDisposable
35
+ internal sealed class JsonApiApplicationBuilder
36
36
{
37
37
private readonly JsonApiOptions _options = new JsonApiOptions ( ) ;
38
38
private readonly IServiceCollection _services ;
39
39
private IServiceDiscoveryFacade _serviceDiscoveryFacade ;
40
40
private IResourceGraphBuilder _resourceGraphBuilder ;
41
41
private readonly IMvcCoreBuilder _mvcBuilder ;
42
- private readonly List < ServiceProvider > _intermediateServiceProviders = new List < ServiceProvider > ( ) ;
42
+ private ServiceProvider _serviceProviderToDispose ;
43
43
44
44
public JsonApiApplicationBuilder ( IServiceCollection services ,
45
45
IMvcCoreBuilder mvcBuilder )
@@ -76,7 +76,7 @@ public void ConfigureAutoDiscovery(Action<IServiceDiscoveryFacade> configureAuto
76
76
_serviceDiscoveryFacade = intermediateProvider . GetRequiredService < IServiceDiscoveryFacade > ( ) ;
77
77
_resourceGraphBuilder = intermediateProvider . GetRequiredService < IResourceGraphBuilder > ( ) ;
78
78
RegisterDiscoverableAssemblies ( configureAutoDiscovery , _serviceDiscoveryFacade ) ;
79
- _intermediateServiceProviders . Add ( intermediateProvider ) ;
79
+ _serviceProviderToDispose = intermediateProvider ;
80
80
}
81
81
82
82
/// <summary>
@@ -91,8 +91,6 @@ public void AddResourceGraph(Type dbContextType, Action<IResourceGraphBuilder> c
91
91
UserConfigureResources ( configureResources , _resourceGraphBuilder ) ;
92
92
_services . AddSingleton ( _resourceGraphBuilder . Build ( ) ) ;
93
93
}
94
-
95
- // _intermediateServiceProviders.Add(intermediateProvider);
96
94
}
97
95
98
96
/// <summary>
@@ -139,6 +137,7 @@ public void ConfigureMvc()
139
137
public void DiscoverInjectables ( )
140
138
{
141
139
_serviceDiscoveryFacade . DiscoverInjectables ( ) ;
140
+ _serviceProviderToDispose . Dispose ( ) ;
142
141
}
143
142
144
143
/// <summary>
@@ -187,15 +186,7 @@ public void ConfigureServices(Type dbContextType)
187
186
188
187
_services . AddScoped < IInverseRelationships , InverseRelationships > ( ) ;
189
188
}
190
-
191
- public void Dispose ( )
192
- {
193
- foreach ( var sp in _intermediateServiceProviders )
194
- {
195
- sp . Dispose ( ) ;
196
- }
197
- }
198
-
189
+
199
190
private void RegisterDiscoverableAssemblies ( Action < IServiceDiscoveryFacade > configureAutoDiscovery ,
200
191
IServiceDiscoveryFacade serviceDiscoveryFacade )
201
192
{
0 commit comments