Используя информацию, представленную в вопросах: Как сохранить файл конфигурации с пользовательским разделом конфигурации? и Сохранение пользовательского раздела в файле конфигурации Я пришел к вспомогательному методу, который я добавить в мой ConfigurationSection
тип:
public void SaveAs(string path)
{
this.SectionInformation.ForceSave = true;
System.Configuration.Configuration configRoot = ConfigurationManager.OpenExeConfiguration(null);
configRoot.Sections.Add(GetSectionName(), this);
// *
configRoot.SaveAs(path, ConfigurationSaveMode.Full);
}
Хорошо, файл создан, раздел сохранен, проблема в том, что все значения являются значениями по умолчанию, а не актуальными. В точке, помеченной звездочкой, я проверил свои данные, оба объекта this
содержат фактическое значение, которое я хотел бы видеть, и просмотрели внутри configRoot
Я вижу, что на этом этапе есть несколько разделов, есть и мой, и он содержит правильные значения. И все же одно сохраняется (фактические значения), другое сохраняется (значения по умолчанию).
Итак, как сохранить все данные, фактические данные из данных ConfigurationSection
?
Когда я изменяю режим сохранения на ConfigurationSaveMode.Modified
, сохраняются правильные значения, но только те, которые я изменил. Я только что проверил это, чтобы видеть, видит ли метод сохранения фактические значения.