@@ -180,15 +180,7 @@ public void ApplyServices(IServiceCollection services)
180180
181181 var instanceParamExpression = Expression . Parameter ( typeof ( object ) , "object" ) ;
182182
183- var triggerInstanceFactoryBuilder =
184- Expression . Lambda < Func < object ? , object > > (
185- Expression . New (
186- typeof ( TriggerInstanceFactory < > ) . MakeGenericType ( triggerServiceType ) . GetConstructor ( new [ ] { typeof ( object ) } ) ,
187- instanceParamExpression
188- ) ,
189- instanceParamExpression
190- )
191- . Compile ( ) ;
183+ Func < object ? , object > ? triggerInstanceFactoryBuilder = null ;
192184
193185 foreach ( var triggerType in _triggerTypes . Distinct ( ) )
194186 {
@@ -198,6 +190,19 @@ public void ApplyServices(IServiceCollection services)
198190
199191 foreach ( var triggerTypeImplementation in triggerTypeImplementations )
200192 {
193+ if ( triggerInstanceFactoryBuilder is null )
194+ {
195+ triggerInstanceFactoryBuilder =
196+ Expression . Lambda < Func < object ? , object > > (
197+ Expression . New (
198+ typeof ( TriggerInstanceFactory < > ) . MakeGenericType ( triggerServiceType ) . GetConstructor ( new [ ] { typeof ( object ) } ) ,
199+ instanceParamExpression
200+ ) ,
201+ instanceParamExpression
202+ )
203+ . Compile ( ) ;
204+ }
205+
201206 var triggerTypeImplementationFactoryType = typeof ( ITriggerInstanceFactory < > ) . MakeGenericType ( triggerTypeImplementation ) ;
202207 services . Add ( new ServiceDescriptor ( triggerTypeImplementationFactoryType , _ => triggerInstanceFactoryBuilder ( triggerServiceInstance ) , lifetime ) ) ;
203208 }
0 commit comments