0

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

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

变量数据应该只是参考——如果我改变了里面的东西,我想在actualData变量中执行相同的改变,但它似乎从实际数据中复制值并且任何改变只保留在数据变量中。有什么建议吗?谢谢!

4

1 回答 1

0

看来您的财产是价值类型。或者它可能是引用类型,但它创建了结果类的新实例而不是重用它。

如果是这种情况,那么恐怕一般都做不到——属性是方法,所以属性的结果值是计算出来的,你无法观察到结果什么时候会改变。

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

如果这不可能,那么您可以记住 ...GetProperty() 的结果,但是每次需要数据时都必须对其调用 GetValue()。

于 2012-07-15T13:31:21.213 回答