我有一个对象,其中有一些字段,我正在使用反射来迭代该对象的字段。此对象被序列化和反序列化。我现在正在编写反序列化例程。我想遍历这些字段,从反序列化SerializationInfo中获取值。在开始实施反射之前,我手动完成了所有操作:
public SKA_MAP(SerializationInfo info, StreamingContext ctxt)
{
//Get the values from info and assign them to the appropriate properties
DISP_SEGS = (int)info.GetValue("DISP_SEGS", typeof(int));
//other fields followed
}
现在:
public SKA_MAP(SerializationInfo info, StreamingContext ctxt)
{
//Get the values from info and assign them to the appropriate properties
//DISP_SEGS = (int)info.GetValue("DISP_SEGS", typeof(int));
foreach (FieldInfo FI in this.GetType().GetFields())
{
FI.SetValue(this, info.GetValue(FI.Name, FI.GetType()));
}
}
我明白了
“无效的强制转换自”系统。Int32“to”系统。反射RtFieldInfo“.”
好的,是的,但我在那里放了不同的演员,没有显示,什么都没有。