返回引用不能与GetValue()一起复制

时间:2012-07-15 13:23:57

标签: c# object reflection reference copy

在c#中使用反射我只需要引用对象,而不是复制,是否可能?

object data = actualData.GetType().GetProperty(properties[0]).GetValue(actualData, null);

变量数据应该只是引用 - 如果我改变了一些内容,我想在actualData变量中执行相同的更改,但它似乎从实际数据中复制值,并且任何更改都只保留在数据变量中。有什么建议吗? 谢谢!

1 个答案:

答案 0 :(得分:0)

您的房产似乎属于价值类型。或者它可能是引用类型,但它创建了一个结果类的新实例,而不是重用它。

如果是这种情况,那么我担心这一般不能做 - 属性是方法,所以计算属性的结果值,你无法观察何时会改变结果。

但是,如果您可以更改实例actualData的类,那么您可以实现INotifyPropertyChanged接口并在代码中订阅其事件PropertyChanged

如果无法做到这一点,那么你可以记住... GetProperty()的结果,但每次需要数据时都必须在其上调用GetValue()。