我很好奇是否有可能撤销我在运行时对ConfigurationSection所做的更改。我不想创建很多变量&设置当前值,这样当我想撤销它们时,我只需将它们设置回去。我需要一种更简单的方式,我想是一种方法?有谁可以帮我?
发布于 2011-11-07 21:32:56
你有没有考虑过使用序列化?您可以序列化ConfiguartionSection,然后反序列化它以撤消。Here are some tips.
发布于 2011-11-07 22:39:50
IMO,你可以用几种方法编写它。对于一个实例,如果您要在运行时更改您的应用程序设置,您可以将它们存储在一个更好的位置,如数据库,而不是配置文件和一个简单的versioning system来记录用户更改的历史记录。
发布于 2011-11-07 22:58:50
您可以实现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的实例数组,并允许多级撤消和重做操作。
https://stackoverflow.com/questions/8036934
复制相似问题