Как сохранить фактическую конфигурацию в данный файл? - PullRequest
1 голос
/ 05 февраля 2020

Используя информацию, представленную в вопросах: Как сохранить файл конфигурации с пользовательским разделом конфигурации? и Сохранение пользовательского раздела в файле конфигурации Я пришел к вспомогательному методу, который я добавить в мой 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, сохраняются правильные значения, но только те, которые я изменил. Я только что проверил это, чтобы видеть, видит ли метод сохранения фактические значения.

...