2012-06-23 47 views
3

是否有類似於備忘錄模式的通用方式來製作Windows窗體應用程序Settings.Default.PropertyValues的副本?我需要檢查特定的屬性值是否改變。如何製作獲獎表格應用程序設置的副本?

object state = CreateMemento(Settings.Default.PropertyValues); 

// show windows dialog where properties may change and be saved 

SettingsPropertyValueCollection settings = GetMemento(state); 
if (IsSomePropertyChanged(settings, Settings.Default.PropertyValues); 
    DoSomeAction(); 

回答

1

相關的設計模式可能是裝飾(您要添加的功能,同時保留接口)或代理(對象充當AA替身另一個對象,同時保持它的接口)

您需要以某種方式代替Settings.Default.PropertyValues與另一個查找要更改的設置的對象,並將所有更改委託給原始對象。無論這是可以在系統範圍內完成的,還是必須手動完成,所有代碼都必須使用myProxyForSettings.Default.PropertyValues我不知道。