我从wcf函数WebMessageFormat = Json中检索数据表,然后使用反射设置数据协定的属性。我在int字段上收到以下错误 -
类型对象&Systems.Int64'无法转换为类型' System.Int32
有人可以解释这是什么以及如何解决?
答案 0 :(得分:1)
在转换盒装值类型值时,必须强制转换为正确的类型。例如:
var myLong = (object)42L;
var intValue = (int)myLong; // WRONG - myLong is a boxed long, not int
var intValue2 = (int)(long)myLong; // CORRECT - myLong is unboxed first, then converted
请注意,如果OverflowException
的大小不足以包含int
值,即使正确取消装箱值,也可能会获得long
。