@@ -11,19 +11,19 @@ namespace AspectCore.Injector
1111 internal class ServiceCallSiteResolver
1212 {
1313 private readonly ConstructorCallSiteResolver _constructorCallSiteResolver ;
14- private readonly ConcurrentDictionary < ServiceDefinition , Func < IServiceResolver , object > > _resolvedCallSites ;
14+ private readonly ConcurrentDictionary < ServiceDefinition , Func < ServiceResolver , object > > _resolvedCallSites ;
1515 public ServiceCallSiteResolver ( ServiceTable serviceTable )
1616 {
1717 _constructorCallSiteResolver = new ConstructorCallSiteResolver ( serviceTable ) ;
18- _resolvedCallSites = new ConcurrentDictionary < ServiceDefinition , Func < IServiceResolver , object > > ( ) ;
18+ _resolvedCallSites = new ConcurrentDictionary < ServiceDefinition , Func < ServiceResolver , object > > ( ) ;
1919 }
2020
21- internal Func < IServiceResolver , object > Resolve ( ServiceDefinition service )
21+ internal Func < ServiceResolver , object > Resolve ( ServiceDefinition service )
2222 {
2323 return _resolvedCallSites . GetOrAdd ( service , ResolvePropertyInject ) ;
2424 }
2525
26- internal Func < IServiceResolver , object > ResolvePropertyInject ( ServiceDefinition service )
26+ internal Func < ServiceResolver , object > ResolvePropertyInject ( ServiceDefinition service )
2727 {
2828 var callSite = ResolveInternal ( service ) ;
2929 if ( ! service . RequiredPropertyInjection ( ) )
@@ -44,7 +44,7 @@ internal Func<IServiceResolver, object> ResolvePropertyInject(ServiceDefinition
4444 } ;
4545 }
4646
47- internal Func < IServiceResolver , object > ResolveInternal ( ServiceDefinition service )
47+ internal Func < ServiceResolver , object > ResolveInternal ( ServiceDefinition service )
4848 {
4949 switch ( service )
5050 {
@@ -65,40 +65,40 @@ internal Func<IServiceResolver, object> ResolveInternal(ServiceDefinition servic
6565 } ;
6666 }
6767
68- private Func < IServiceResolver , object > ResolveManyEnumerableService ( ManyEnumerableServiceDefintion manyEnumerableServiceDefintion )
68+ private Func < ServiceResolver , object > ResolveManyEnumerableService ( ManyEnumerableServiceDefintion manyEnumerableServiceDefintion )
6969 {
70- var elementResolvers = manyEnumerableServiceDefintion . ServiceDefinitions . Select ( x => Resolve ( x ) ) . ToArray ( ) ;
70+ var elementDefinitions = manyEnumerableServiceDefintion . ServiceDefinitions . ToArray ( ) ;
7171 var elementType = manyEnumerableServiceDefintion . ElementType ;
7272 return resolver =>
7373 {
74- var length = elementResolvers . Length ;
74+ var length = elementDefinitions . Length ;
7575 var instance = Array . CreateInstance ( elementType , length ) ;
7676 for ( var i = 0 ; i < length ; i ++ )
7777 {
78- instance . SetValue ( elementResolvers [ i ] ( resolver ) , i ) ;
78+ instance . SetValue ( resolver . ResolveDefinition ( elementDefinitions [ i ] ) , i ) ;
7979 }
8080 return ActivatorUtils . CreateManyEnumerable ( elementType , instance ) ;
8181 } ;
8282 }
8383
84- private Func < IServiceResolver , object > ResolveEnumerableService ( EnumerableServiceDefintion enumerableServiceDefintion )
84+ private Func < ServiceResolver , object > ResolveEnumerableService ( EnumerableServiceDefintion enumerableServiceDefintion )
8585 {
86- var elementResolvers = enumerableServiceDefintion . ServiceDefinitions . Select ( x => Resolve ( x ) ) . ToArray ( ) ;
86+ var elementDefinitions = enumerableServiceDefintion . ServiceDefinitions . ToArray ( ) ;
8787 var elementType = enumerableServiceDefintion . ElementType ;
8888 return resolver =>
8989 {
90- var length = elementResolvers . Length ;
90+ var length = elementDefinitions . Length ;
9191 var instance = Array . CreateInstance ( elementType , length ) ;
9292 for ( var i = 0 ; i < length ; i ++ )
9393 {
94- var element = elementResolvers [ i ] ( resolver ) ;
94+ var element = resolver . ResolveDefinition ( elementDefinitions [ i ] ) ;
9595 instance . SetValue ( element , i ) ;
9696 }
9797 return instance ;
9898 } ;
9999 }
100100
101- private Func < IServiceResolver , object > ResolveProxyService ( ProxyServiceDefinition proxyServiceDefinition )
101+ private Func < ServiceResolver , object > ResolveProxyService ( ProxyServiceDefinition proxyServiceDefinition )
102102 {
103103 if ( proxyServiceDefinition . ServiceType . GetTypeInfo ( ) . IsClass )
104104 {
@@ -110,7 +110,7 @@ private Func<IServiceResolver, object> ResolveProxyService(ProxyServiceDefinitio
110110 return resolver => reflector . Invoke ( resolver . ResolveRequired < IAspectActivatorFactory > ( ) , serviceResolver ( resolver ) ) ;
111111 }
112112
113- private Func < IServiceResolver , object > ResolveTypeService ( TypeServiceDefinition typeServiceDefinition )
113+ private Func < ServiceResolver , object > ResolveTypeService ( TypeServiceDefinition typeServiceDefinition )
114114 {
115115 var callSite = _constructorCallSiteResolver . Resolve ( typeServiceDefinition . ImplementationType ) ;
116116 if ( callSite == null )
0 commit comments