@@ -7,16 +7,14 @@ namespace Hyperbee.Expressions;
77public class InjectExpression : Expression , IDependencyInjectionExpression
88{
99 private IServiceProvider _serviceProvider ;
10- private readonly string _key ;
11- private readonly Expression _defaultValue ;
1210 private readonly Type _type ;
1311
1412 public InjectExpression ( Type type , IServiceProvider serviceProvider , string key , Expression defaultValue )
1513 {
1614 _type = type ;
1715 _serviceProvider = serviceProvider ;
18- _key = key ;
19- _defaultValue = defaultValue ;
16+ Key = key ;
17+ DefaultValue = defaultValue ;
2018 }
2119
2220 public void SetServiceProvider ( IServiceProvider serviceProvider )
@@ -26,6 +24,8 @@ public void SetServiceProvider( IServiceProvider serviceProvider )
2624
2725 public override ExpressionType NodeType => ExpressionType . Extension ;
2826 public override Type Type => _type ;
27+ public string Key { get ; init ; }
28+ public Expression DefaultValue { get ; init ; }
2929 public override bool CanReduce => true ;
3030
3131 private MethodInfo GetServiceMethodInfo => typeof ( ServiceProviderServiceExtensions )
@@ -45,7 +45,7 @@ public override Expression Reduce()
4545
4646 var serviceValue = Variable ( _type , "serviceValue" ) ;
4747
48- var callExpression = _key == null
48+ var callExpression = Key == null
4949 ? Call (
5050 null ,
5151 GetServiceMethodInfo ,
@@ -54,10 +54,10 @@ public override Expression Reduce()
5454 : Call (
5555 null ,
5656 GetKeyedServiceMethodInfo ,
57- [ Constant ( _serviceProvider ) , Constant ( _key ) ]
57+ [ Constant ( _serviceProvider ) , Constant ( Key ) ]
5858 ) ;
5959
60- var defaultExpression = _defaultValue ??
60+ var defaultExpression = DefaultValue ??
6161 Throw ( New ( ExceptionHelper . ConstructorInfo , Constant ( "Service is not available." ) ) , _type ) ;
6262
6363 return Block (
0 commit comments