3

是否有类似于 memento 模式的通用方法来复制 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(); 
4

1 回答 1

1

相关的设计模式可能是装饰器(您在保留接口的同时添加功能)或代理(一个对象在维护其接口的同时充当另一个对象的替代品)

您需要以某种方式将 Settings.Default.PropertyValues 代理为另一个对象,该对象查找要更改的设置并将所有更改委托给原始对象。这是否可以在系统范围内完成,或者您必须手动完成,所以您的所有代码都必须使用 myProxyForSettings.Default.PropertyValues 我不知道。

于 2012-06-30T06:08:17.060 回答