C#Convert.ChangeType()在int和object之间转换时抛出InvalidCastException
我对ChangeType()方法有一个问题,它过去工作正常,但现在抛出:C#Convert.ChangeType()在int和object之间转换时抛出InvalidCastException,c#,.net,exception,type-conversion,C#,.net,Exception,Type Conversion,我对ChangeType()方法有一个问题,它过去工作正常,但现在抛出:对象必须实现IConvertible。 过去的代码是这样的: Type type = DataType.TypeDictionary[(DataType.TYPE)setting.SettingType]; object value = binFormer.Deserialize(memStream); Settings.Add(setting.SettingName, Convert.ChangeType(value,
对象必须实现IConvertible。
过去的代码是这样的:
Type type = DataType.TypeDictionary[(DataType.TYPE)setting.SettingType];
object value = binFormer.Deserialize(memStream);
Settings.Add(setting.SettingName, Convert.ChangeType(value, type));
现在是这样的:
Type type = DataType.TypeDictionary[(DataType.TYPE)setting.SettingType];
object value = binFormer.Deserialize(memStream);
settingItem.SettingName = setting.SettingName;
settingItem.SettingComment = setting.SettingComment;
settingItem.SettingData = Convert.ChangeType(value, type);
Settings.Add(settingItem);
它引发异常的数据类型为-Int32,值应为object。我没有改变转换本身…我可能错过了一些明显的东西
提前谢谢 消息非常清楚-
值
的类型不实现IConvertible
。例如,使用调试器找出值的实际类型。您是对的,问题实际上是在其他地方,因为其他函数输出发生了更改,谢谢您的回答。