@@ -322,10 +322,7 @@ public Delegate GetFactory(string sql, string connString, int firstColumn, int c
322
322
il . Emit ( OpCodes . Newobj , dstType . GetConstructor ( new Type [ ] { Nullable . GetUnderlyingType ( dstType ) } ) ) ;
323
323
}
324
324
325
- if ( pc . MemberInfo . IsField ( ) )
326
- il . Emit ( OpCodes . Stfld , ( FieldInfo ) pc . MemberInfo ) ;
327
- else
328
- il . Emit ( OpCodes . Callvirt , ( ( PropertyInfo ) pc . MemberInfo ) . GetSetMethod ( true ) ) ; // poco
325
+ PushMemberOntoStack ( il , pc ) ; //poco
329
326
Handled = true ;
330
327
}
331
328
}
@@ -348,10 +345,7 @@ public Delegate GetFactory(string sql, string connString, int firstColumn, int c
348
345
// Assign it
349
346
il . Emit ( OpCodes . Unbox_Any , pc . MemberInfo . GetMemberInfoType ( ) ) ; // poco,poco,value
350
347
351
- if ( pc . MemberInfo . IsField ( ) )
352
- il . Emit ( OpCodes . Stfld , ( FieldInfo ) pc . MemberInfo ) ;
353
- else
354
- il . Emit ( OpCodes . Callvirt , ( ( PropertyInfo ) pc . MemberInfo ) . GetSetMethod ( true ) ) ; // poco
348
+ PushMemberOntoStack ( il , pc ) ; //poco
355
349
}
356
350
357
351
if ( _emptyNestedObjectNull )
@@ -402,6 +396,14 @@ public Delegate GetFactory(string sql, string connString, int firstColumn, int c
402
396
return fac ;
403
397
}
404
398
399
+ private static void PushMemberOntoStack ( ILGenerator il , PocoColumn pc )
400
+ {
401
+ if ( pc . MemberInfo . IsField ( ) )
402
+ il . Emit ( OpCodes . Stfld , ( FieldInfo ) pc . MemberInfo ) ;
403
+ else
404
+ il . Emit ( OpCodes . Callvirt , ( ( PropertyInfo ) pc . MemberInfo ) . GetSetMethodOnDeclaringType ( ) ) ;
405
+ }
406
+
405
407
private static void AddConverterToStack ( ILGenerator il , Func < object , object > converter )
406
408
{
407
409
if ( converter != null )
0 commit comments