77using AspectCore . Injector ;
88using Microsoft . Extensions . DependencyInjection ;
99using Microsoft . Extensions . DependencyInjection . Extensions ;
10+ using System . Collections . Generic ;
11+ using System . Linq ;
1012
1113namespace AspectCore . Extensions . DependencyInjection
1214{
1315 public static class ServiceCollectionBuildExtensions
1416 {
1517 public static IServiceProvider BuildAspectCoreServiceProvider ( this IServiceCollection services )
18+ {
19+ return services . AddDynamicProxyCore ( ) . BuildServiceProvider ( false ) ;
20+ }
21+ public static IServiceCollection AddDynamicProxyCore ( this IServiceCollection services )
1622 {
1723 if ( services == null )
1824 {
@@ -24,8 +30,7 @@ public static IServiceProvider BuildAspectCoreServiceProvider(this IServiceColle
2430 var serviceValidator = new ServiceValidator ( serviceProvider . GetRequiredService < IAspectValidatorBuilder > ( ) ) ;
2531 var proxyTypeGenerator = serviceProvider . GetRequiredService < IProxyTypeGenerator > ( ) ;
2632
27- var dynamicProxyServices = new ServiceCollection ( ) ;
28-
33+ IServiceCollection dynamicProxyServices = new ServiceCollection ( ) ;
2934 foreach ( var service in services )
3035 {
3136 if ( serviceValidator . TryValidate ( service , out Type implementationType ) )
@@ -36,9 +41,10 @@ public static IServiceProvider BuildAspectCoreServiceProvider(this IServiceColle
3641
3742 serviceProvider . Dispose ( ) ;
3843
39- return dynamicProxyServices . BuildServiceProvider ( false ) ;
44+ return dynamicProxyServices ;
4045 }
4146
47+
4248 private static ServiceDescriptor MakeProxyService ( ServiceDescriptor descriptor , Type implementationType , IProxyTypeGenerator proxyTypeGenerator )
4349 {
4450 var serviceTypeInfo = descriptor . ServiceType . GetTypeInfo ( ) ;
0 commit comments