2016-07-20 53 views
3

我已經做了一些搜索(並且大部分已經完成了深入的C#),但沒有遇到我期待的內容。didset檢測任何字段?

我很好奇,但如果有一種方法(hacky是好的!),我可以從一個類的任何設置操作獲得通用通知或鉤子。

原因是我正在研究一個框架,將應用程序的狀態保存爲一個類。當狀態發生變化時,我想要通知它。

在每個可能的字段中設置一個didSet(即在每個setter調用中發出警報)是單調乏味的矯枉過正。你知道有什麼方法可以在任何時候在課堂上改變場地嗎?

更新1

通過@thehennyy一個偉大的建議是看PostSharp。下面是其中突出它做什麼視頻:通過@Mattias阿斯倫德建議https://vimeo.com/143656221

更新2

開源MIST

+0

是指字段或屬性? – thehennyy

+0

那麼你創建一個領域的財產。我可以創建引發我需要的事件的屬性,但這就是爲什麼我好奇如果我能夠做到這一點的一種通用方式,而不必爲每個字段創建特定屬性來獲取更改通知。 – Aggressor

+1

當您直接訪問該字段時,沒有辦法。當你使用一個屬性來訪問它時,確定你可以在屬性setter/getter中實現代碼。我建議看看PostSharp,沒有內置的解決方案來做到這一點。 – thehennyy

回答

2

看看github上的MIST。它會做你正在尋找的東西,並且是免費的。

+0

NICE FIND !!!!!! – Aggressor

+0

我是它的初始評論者,並已提交了一些代碼;主要是單元測試。所以它不是很難找到它;;) –

+0

那麼,但你必須在每個屬性上實現屬性。我沒有OP想要避免這種情況? – lokusking