File tree Expand file tree Collapse file tree 2 files changed +13
-9
lines changed Expand file tree Collapse file tree 2 files changed +13
-9
lines changed Original file line number Diff line number Diff line change 11using System . Net ;
2- using Microsoft . Extensions . DependencyInjection ;
32using Minio . Credentials ;
43using Minio . Handlers ;
54
65namespace Minio ;
76
87public class MinioConfig
98{
10- internal ServiceProvider ServiceProvider { get ; set ; }
9+ internal IServiceProvider ServiceProvider { get ; set ; }
1110
1211 // Cache holding bucket to region mapping for buckets seen so far.
1312 public BucketRegionCache RegionCache { get ; internal set ; }
Original file line number Diff line number Diff line change @@ -41,24 +41,29 @@ public static IServiceCollection AddMinio(
4141 if ( services is null ) throw new ArgumentNullException ( nameof ( services ) ) ;
4242 if ( configureClient == null ) throw new ArgumentNullException ( nameof ( configureClient ) ) ;
4343
44- var minioClientFactory = new MinioClientFactory ( configureClient ) ;
45- services . TryAddSingleton < IMinioClientFactory > ( minioClientFactory ) ;
44+ services . TryAddSingleton < IMinioClientFactory > ( _ => new MinioClientFactory ( configureClient ) ) ;
4645
47- var client = minioClientFactory . CreateClient ( ) ;
48- client . Config . ServiceProvider = services . BuildServiceProvider ( ) ;
4946 switch ( lifetime )
5047 {
5148 case ServiceLifetime . Singleton :
52- services . TryAddSingleton ( _ => client ) ;
49+ services . TryAddSingleton ( CreateClient ) ;
5350 break ;
5451 case ServiceLifetime . Scoped :
55- services . TryAddScoped ( _ => client ) ;
52+ services . TryAddScoped ( CreateClient ) ;
5653 break ;
5754 case ServiceLifetime . Transient :
58- services . TryAddTransient ( _ => client ) ;
55+ services . TryAddTransient ( CreateClient ) ;
5956 break ;
6057 }
6158
6259 return services ;
60+
61+ static IMinioClient CreateClient ( IServiceProvider serviceProvider )
62+ {
63+ var factory = serviceProvider . GetRequiredService < IMinioClientFactory > ( ) ;
64+ var client = factory . CreateClient ( ) ;
65+ client . Config . ServiceProvider = serviceProvider ;
66+ return client ;
67+ }
6368 }
6469}
You can’t perform that action at this time.
0 commit comments