@@ -13,26 +13,30 @@ public abstract class ApplicationManager<TManager, TApplication>
13
13
14
14
public static bool IsStarted => AppContainer . IsValueCreated && AppContainer . Value . Driver . SessionId != null ;
15
15
16
- protected static TApplication GetApplication ( Func < IServiceProvider , TApplication > startApplicationFunction , IServiceCollection serviceCollection = null )
16
+ protected static TApplication GetApplication ( Func < IServiceProvider , TApplication > startApplicationFunction , Func < IServiceCollection > serviceCollectionProvider = null )
17
17
{
18
18
if ( ! IsStarted )
19
19
{
20
20
AppContainer . Value = startApplicationFunction (
21
- GetServiceProvider ( service => GetApplication ( startApplicationFunction ) , serviceCollection ) ) ;
21
+ GetServiceProvider ( service => GetApplication ( startApplicationFunction , serviceCollectionProvider ) , serviceCollectionProvider ) ) ;
22
22
}
23
23
return AppContainer . Value ;
24
24
}
25
25
26
- protected static IServiceProvider GetServiceProvider ( Func < IServiceProvider , TApplication > applicationSupplier , IServiceCollection serviceCollection = null )
26
+ protected static IServiceProvider GetServiceProvider ( Func < IServiceProvider , TApplication > applicationSupplier , Func < IServiceCollection > serviceCollectionProvider = null )
27
27
{
28
28
if ( ! ServiceProviderContainer . IsValueCreated )
29
29
{
30
- var services = serviceCollection ;
31
- if ( services == null )
30
+ IServiceCollection services ;
31
+ if ( serviceCollectionProvider == null )
32
32
{
33
33
services = new ServiceCollection ( ) ;
34
34
new Startup ( ) . ConfigureServices ( services , applicationSupplier ) ;
35
35
}
36
+ else
37
+ {
38
+ services = serviceCollectionProvider ( ) ;
39
+ }
36
40
ServiceProviderContainer . Value = services . BuildServiceProvider ( ) ;
37
41
}
38
42
return ServiceProviderContainer . Value ;
0 commit comments