@@ -70,15 +70,8 @@ private static IEnumerable<StepArgument> ExtractArguments<T>(Expression expressi
7070
7171 private static IEnumerable < StepArgument > Invoke ( MethodCallExpression methodCallExpression , IEnumerable < StepArgument > args )
7272 {
73- try
74- {
75- var value = ( ( ConstantExpression ) methodCallExpression . Object ) . Value ;
76- return new [ ] { new StepArgument ( methodCallExpression . Method . Invoke ( value , args . Select ( s => s . Value ) . ToArray ( ) ) ) } ;
77- }
78- catch ( Exception )
79- {
80- return Enumerable . Empty < StepArgument > ( ) ;
81- }
73+ var value = ( ( ConstantExpression ) methodCallExpression . Object ) . Value ;
74+ return new [ ] { new StepArgument ( ( ) => methodCallExpression . Method . Invoke ( value , args . Select ( s => s . Value ) . ToArray ( ) ) ) } ;
8275 }
8376
8477 private static IEnumerable < StepArgument > ExtractArguments < T > ( MethodCallExpression methodCallExpression , T value )
@@ -107,7 +100,7 @@ private static IEnumerable<StepArgument> ExtractArguments<T>(NewExpression newEx
107100 arguments . AddRange ( ExtractArguments ( argumentExpression , value ) ) ;
108101 }
109102
110- return new [ ] { new StepArgument ( newExpression . Constructor . Invoke ( arguments . Select ( o => o . Value ) . ToArray ( ) ) ) } ;
103+ return new [ ] { new StepArgument ( ( ) => newExpression . Constructor . Invoke ( arguments . Select ( o => o . Value ) . ToArray ( ) ) ) } ;
111104 }
112105
113106 private static IEnumerable < StepArgument > ExtractArguments < T > ( NewArrayExpression newArrayExpression , T value )
@@ -141,7 +134,7 @@ private static IEnumerable<StepArgument> ExtractNonConvertibleArrayConstants<T>(
141134 arrayElements . Add ( arrayElement ) ;
142135 }
143136
144- return ToArray ( arrayElements ) . Select ( o => new StepArgument ( o ) ) ;
137+ return ToArray ( arrayElements ) . Select ( o => new StepArgument ( ( ) => o ) ) ;
145138 }
146139
147140 private static IEnumerable < object > ToArray ( IList list )
@@ -164,7 +157,7 @@ private static IEnumerable<StepArgument> ExtractConvertibleTypeArrayConstants(Ne
164157 arrayElements . Add ( Convert . ChangeType ( arrayElement , arrayElementExpression . Type , null ) ) ;
165158 }
166159
167- return new [ ] { new StepArgument ( ToArray ( arrayElements ) ) } ;
160+ return new [ ] { new StepArgument ( ( ) => ToArray ( arrayElements ) ) } ;
168161 }
169162
170163 private static IEnumerable < StepArgument > ExtractArguments < T > ( ConstantExpression constantExpression , T value )
@@ -181,7 +174,7 @@ private static IEnumerable<StepArgument> ExtractArguments<T>(ConstantExpression
181174 constantExpression . Type . IsPrimitive ||
182175 constantExpression . Type . IsEnum ||
183176 constantExpression . Value == null )
184- constants . Add ( new StepArgument ( constantExpression . Value ) ) ;
177+ constants . Add ( new StepArgument ( ( ) => constantExpression . Value ) ) ;
185178
186179 return constants ;
187180 }
@@ -237,14 +230,7 @@ private static StepArgument ExtractPropertyValue<T>(MemberExpression expression,
237230 if ( memberExpression != null )
238231 {
239232 var extractArguments = ExtractArgument ( memberExpression , value ) . Value ;
240- try
241- {
242- return new StepArgument ( member , extractArguments ) ;
243- }
244- catch ( TargetException )
245- {
246- return new StepArgument ( null ) ;
247- }
233+ return new StepArgument ( member , extractArguments ) ;
248234 }
249235 return new StepArgument ( member , value ) ;
250236 }
0 commit comments