我很好奇是否可以撤消我在运行时对ConfigurationSection所做的更改。我不想创建很多变量&设置当前值,这样当我想撤消它们时,我可以将它们设置回来。我需要一种更简单的方法,一种我认为的方法?任何人都可以帮助我吗?
答案 0 :(得分:1)
您是否考虑过使用序列化?您可以序列化ConfiguartionSection,然后将其反序列化为undo。 Here are some tips.
答案 1 :(得分:1)
IMO,你可以用几种方法写它。对于实例,如果您在运行时更改应用程序设置,则可以将它们存储在更好的位置,例如数据库代替配置文件,以及简单的versioning system来记录用户更改的历史记录。
答案 2 :(得分:1)
您可以实施Command Pattern。它非常适合您的情况。您可以使用StreamReader和StreamWriter来读取和写入备份文件。
interface ICommandPattern {
void Execute();
void Undo();
}
class SaveConfigurationPattern : ICommandPattern {
string _backupFileName;
public void Execute()
{
// serialize your original and save to the backup file name
// make changes and save to your config file
}
public void Undo()
{
// copy your backup file over the configuration file
}
}
您可以存储SaveConfigurationPattern
的实例数组,并允许进行多级撤消和重做操作。