我正在处理一个项目,其中加载了xml中的字段名,并将具有该名称的字段返回并添加到当前对象中。问题是fieldinfo.getvalue似乎返回字段的当前值,而不是引用。有什么办法绕过这个吗?

最佳答案

不,不幸的是没有。FieldInfo.GetValue的设计是提供值而不是参考。在FieldInfo上也没有其他合适的方法提供参考。
一个原因是这样做是不安全的。想象对象是堆栈上的struct的场景。如果FieldInfo可以提供对该struct字段的引用,那么它将提供对堆栈中随时可能消失的部分的引用。堆栈消失后读取或写入该引用将不正确,并且会违反类型安全性。

10-06 13:02