diff options
Diffstat (limited to 'src/CompilerServices/CompilerServices.cs')
| -rw-r--r-- | src/CompilerServices/CompilerServices.cs | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/CompilerServices/CompilerServices.cs b/src/CompilerServices/CompilerServices.cs index ae4b700a..7bd91805 100644 --- a/src/CompilerServices/CompilerServices.cs +++ b/src/CompilerServices/CompilerServices.cs @@ -270,8 +270,10 @@ namespace go if (!srcValueType.IsValueType) il.Emit(OpCodes.Castclass, srcValueType); + else if (piTarget.PropertyType != srcValueType) + il.Emit(OpCodes.Callvirt, GetConvertMethod( piTarget.PropertyType )); else - il.Emit( OpCodes.Callvirt, GetConvertMethod( piTarget.PropertyType )); + il.Emit(OpCodes.Unbox_Any, piTarget.PropertyType); // if (piTarget.PropertyType == typeof(string)) // else if ( srcValueType != piTarget.PropertyType) // |