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