Произвольные типы данных в файле настроек - PullRequest
0 голосов
/ 23 ноября 2011

В файле Settings.settings есть несколько перечисленных по умолчанию типов данных, а затем вы можете добавить еще несколько из дерева, выбрав «Обзор».

Мне действительно нужно сохранить int[] в моем файле настроек, и сделали это следующим образом:

[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public int[] SPLTimings
{
    get
    {
        return ((int[])(this["SPLTimings"]));
    }
    set
    {
        this["SPLTimings"] = value;
    }
}

и при первом запуске программы:

int[] timings = Settings.SPLTimings ?? new int[] { 25, 100, 80, 50, 125, 50 };

, которая позже будет сохранена на диск.с Settings.Save()

Это работает довольно хорошо, но есть небольшая проблема с этим.Если я хочу добавить простой тип данных с помощью графического интерфейса настроек, мои пользовательские дополнения будут удалены, и мне придется добавить их снова.В настоящее время у меня есть только один особый случай, так что нет ничего сложного в том, чтобы добавить его, если он будет удален.С другой стороны, я могу просто добавить последующие базовые настройки, такие как strings / ints / etc, таким же образом, как я добавил int[]: кодирование прямо в файл Settings.Designer.способ сделать это?

Так как класс Settings уже является частичным, было бы лучшим решением создать новый файл, скажем CustomSettings, который продолжает определение класса и включает эти неясные типы?

1 Ответ

1 голос
/ 23 ноября 2011

Settings.Designer.cs генерируется автоматически. Так что да, вы можете использовать тот факт, что этот класс является частичным, и определить свои собственные настройки в другом файле с таким же определением класса. Таким образом, настройки не будут перезаписаны.

...