Сохранение изменений во внешний конфигурационный файл, указанный в атрибуте configSource пользовательского раздела

#c# #.net #app-config

#c# #.net #app-config

Вопрос:

Я определил пользовательский раздел в файле App.config, и все свойства конфигурации, присутствующие для пользовательского раздела, были определены во внешнем конфигурационном файле, указанном в файле configSource.

Теперь сценарии таковы, что всякий раз, когда я запускаю программу, я изменяю значения свойств, присутствующих во внешнем конфигурационном файле, и мне нужен способ сохранить эти значения во внешнем конфигурационном файле.

Как было бы возможно сохранить эти значения? Является ли использование обычных способов записи в файл единственным вариантом?

Рассмотрим следующий сценарий относительно того, что я хочу сделать в приложении:

Файл App.config

 <?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="example" type="CustomConfig.ExampleSection, 
                                 CustomConfig"  />
  </configSections>

  <example
   configSource="example.config"
  />

  <appSettings>
    <add key="version_string" value="1.01" />
  </appSettings>
</configuration>
  

example.config

 <?xml version="1.0"?>
<example version="A sample string value."/>
  

Предположим, что значение version изменено на «Foo» во время выполнения программы. Как я могу сохранить это значение в файле example.config постоянно, чтобы при выходе из приложения и его повторной загрузке значением version было Foo .

Ответ №1:

Вы можете сделать это следующим образом. Configuration c = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
c.AppSettings.Settings["Your config"].Value=....;
c.Save(ConfigurationSaveMode.Modified);

Комментарии:

1. Я попробую это и дам вам знать. Но это пользовательский раздел, и я не сохраняю его в настройках приложения

2. Вы можете прочитать http://msdn.microsoft.com/en-us/library/ms178684 (v=VS.90).aspx .