我有我想要緩存(他們的過去值)值的類的屬性。對象本身會跟蹤它們的變化,但我希望能夠用一個簡單的屬性來標記我想跟蹤的屬性。我怎樣才能監視屬性的變化,沒有任何手動代碼每個屬性?什麼是通過屬性監視屬性的優雅方式?
0
A
回答
0
使用通用代理模式。 有很多代理生成器,但您可以使用遠程處理提供的真實/透明代理。
攔截對財產的呼叫,並做你想做的事情。
0
如果你想要一個屬性來擴展或改變一個屬性的行爲的東西,如監控,緩存,驗證或登錄你可能要考慮AOP (Aspect Oriented Programming),a good white paper can be found here too
在.NET中最常見的AOP工具Post Sharp。
將該庫/工具集成到您的解決方案和Visual Studio中,它將查找特定的屬性,將其識別爲方面並將它們在編譯(或運行時,取決於某些因素)應用於目標屬性,方法,類,甚至整個程序集。
與帖子銳利,location interception aspect將允許您攔截目標的執行(在執行前,發生錯誤或發生錯誤時)並編寫一些代碼以在發生攔截時執行,並且您將獲得有關元數據的信息被攔截的目標(例如PropertyInfo)以及當前被攔截的對象實例或發生的錯誤。
有一些預先定義的方面(屬性)與銳利後打包,你可以立即使用它們,或者你可以創建自己的方面(屬性)與任何不同的行爲。
相關問題
- 1. 通過優雅的屬性
- 2. 在設置屬性時,什麼是最優雅的交換事件的方式?
- 3. 什麼是最簡單最優雅的方式來利用自定義屬性
- 4. 優雅的分組屬性方法
- 5. 使用Rails驗證兩個屬性中只有一個屬性的最優雅方式是什麼?
- 6. ECMAScript-5中屬性屬性「功能」的優點是什麼?
- 7. 通過名稱獲得嵌套對象屬性的更優雅方式?
- 8. 通過條件在Javascript中添加和設置屬性的優雅方式
- 9. 什麼是從C#中的子類中聚合屬性的優雅方法?
- 10. 什麼是「TemplatedParent模板屬性」依賴項屬性優先
- 11. 訪問對象屬性的更優雅或有效的方式?
- 12. 優雅的方式來控制字符串屬性的長度
- 13. 超載Python類屬性的一種優雅的方式
- 14. 優雅的方式來迫使具有相同的屬性
- 15. 在Python中複製屬性的更優雅的方式3
- 16. 寫對多個屬性排序比較優雅的方式
- 17. 優雅的方式來添加屬性以每個元素在
- 18. 什麼是強屬性屬性
- 19. 什麼是屬性?
- 20. 過濾ngOptions通過屬性的屬性
- 21. Python的方式通過屬性
- 22. 什麼是初始化屬性或屬性的Pythonic方法?
- 23. 監視屬性變化
- 24. ARIA屬性,DOM和優雅劣化
- 25. 通過屬性
- 26. 通過屬性
- 27. 通過屬性
- 28. 通過屬性
- 29. 通過屬性
- 30. uitableviewcell的屬性是什麼?
[團結攔截(http://msdn.microsoft.com/en-us/library/dn178466%28v=pandp.30%29.aspx)是一種選擇 - 包裝所有的實例和之前捕獲信息/後調用。與屬性無關,所以沒有答案...(我不完全確定你的意思是「通過屬性監視」,因爲屬性並不意味着/自己做任何事情)... –
@AlexeiLevenkov我想創建一個系統,當一個屬性被標記了一個屬性時,其更改會被其他子系統自動監控。 –
您可能想要添加代碼的樣子,使其看起來像答案 - 樣本對象和對象的樣本創建......還要注意,您是否已經有了類似於「INotifyPropertyChanged」的東西。 –