.NET配置类保存问题

时间:2011-09-20 17:43:48

标签: c# .net app-config

当我更改一些配置属性并调用Save()方法到配置对象,然后更改一些配置属性并再次调用Save()时因为配置被更改而得到异常。

异常文本:“配置文件已被其他程序更改。”

因此,如果用户在运行时更改某些内容并进行保存并再次更改某些内容并保存我的应用程序将抛出异​​常。我是对的吗?

我不应该多次保存配置吗?

编辑:提供代码示例。

ExeConfigurationFileMap map = new ExeConfigurationFileMap();
            map.LocalUserConfigFilename = UserConfig;
            map.RoamingUserConfigFilename = RoamingConfig;
            map.ExeConfigFilename = AppConfig;

            System.Configuration.Configuration combinedConfigFile = ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.PerUserRoamingAndLocal);

            AddinConfiguration combinedConfig = (AddinConfiguration)combinedConfigFile.GetSection(sectionName);
            combinedConfig.Config = combinedConfigFile;
            return combinedConfig;

我已将属性Config注入我的部分,因此我可以使用它来保存这样的配置。

mySection.Config.Save();

1 个答案:

答案 0 :(得分:6)

文档说明:“如果自创建此Configuration对象后配置文件已更改,则会发生运行时错误。”因此,在Save()之后,您需要销毁配置对象并重新创建它以使多个保存操作正常工作。