2016-07-14 59 views
0

是否有可能在沒有爲setter中的每個屬性調用PropertyChanged(System.ComponentModel)的情況下觀察屬性的值更改?觀察屬性的設置值

我試着用Timer觀察我的屬性,但是這對性能有不必要的負面影響,並且太慢(每次運行15ms)。

+0

簡答題:沒有。 – Jamiec

+0

你可以使用像[Fody.PropertyChanged](https://github.com/Fody/PropertyChanged)這樣的IL編織來自動創建屬性更改實現。 –

+0

爲什麼你需要這個?通常一個屬性有一個getter和一個setter,所以你知道它的值是什麼時候改變的。只要沒有人改變它的價值,它應該保持不變,不是嗎?在所有其他情況下,使用一個事件 - 作爲PropertyChanged,這就是它應該做的事情。 – HimBromBeere

回答

1

根據你的評論,你需要的是自動添加INotifyPropertyChanged類。這可以通過幾種方式實現。

以下是部分列表: RoslynFodyCastlePostSharpSpring.Net

要選擇一個,你需要定義您的要求。 如果你想要動態代理\ AOP或者使用IL編織來做到這一點,或者你想在VS中使用代碼修復來添加它。

+0

Roslyn聽起來不錯。尤其是由於VS已經實現了它。 AFAIK其他人都是第三方庫,對不對?那麼下一步就要弄清楚如何用Roslyn實現它...... – c0d3b34n