我正在开发一个项目,其中加载了XML的字段名称,并返回具有该名称的字段并将其添加到当前对象。问题是FieldInfo.GetValue似乎返回字段的当前值,而不是引用。有没有办法解决这个问题?
答案 0 :(得分:8)
不幸的是没有。 FieldInfo.GetValue
的设计是提供价值而不是参考。 FieldInfo
上没有其他合适的方法可以提供参考。
这样做的一个原因就是不安全。 Imagen对象是堆栈上struct
的场景。如果FieldInfo
可以提供对struct
字段的引用,那么它将提供对栈中可能随时消失的片段的引用。在堆栈消失后读取或写入该引用将是不正确的并且类型安全违规。