撤消ConfigurationSection更改

时间:2011-11-07 13:08:48

标签: c# .net configuration

我很好奇是否可以撤消我在运行时对ConfigurationSection所做的更改。我不想创建很多变量&设置当前值,这样当我想撤消它们时,我可以将它们设置回来。我需要一种更简单的方法,一种我认为的方法?任何人都可以帮助我吗?

3 个答案:

答案 0 :(得分:1)

您是否考虑过使用序列化?您可以序列化ConfiguartionSection,然后将其反序列化为undo。 Here are some tips.

答案 1 :(得分:1)

IMO,你可以用几种方法写它。对于实例,如果您在运行时更改应用程序设置,则可以将它们存储在更好的位置,例如数据库代替配置文件,以及简单的versioning system来记录用户更改的历史记录。

答案 2 :(得分:1)

您可以实施Command Pattern。它非常适合您的情况。您可以使用StreamReaderStreamWriter来读取和写入备份文件。

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的实例数组,并允许进行多级撤消和重做操作。