Доступ к настройкам программы по имени

Я пишу программу на C#. Программа управляет колесом физического фильтра, которое имеет сменные колеса от A до H. Каждое колесо может содержать 8 фильтров. Я хочу, чтобы пользователь мог хранить дружественные имена для каждого фильтра в каждом колесе (всего 64). Устройство и программа способны идентифицировать идентификатор колеса (AH) и положение фильтра (1-8), так что это лучший способ сохранить эти 64 имени и иметь возможность ссылаться на них по идентификатору и поз. Я мог бы создать пользовательскую настройку для каждого, но есть две проблемы с этим: 1) имена не будут одинаковыми для каждого пользователя, который входит в систему (я думаю), и 2) для программного доступа к определенным именам Я должен использовать ОГРОМНОЕ утверждение случая. Или есть способ получить доступ к настройкам по имени? как это..?

char WheelID = 'A';
int FilterPos = 4;
NewName = "FriendlyName";

string SettingIWant = WheelID.ToString() + FilterPos.ToString();

Properties.Settings[SettingIWant].Text = NewName;

4 ответа

Решение

Хорошо, я просто тупой и упустил этот способ доступа к настройкам...

string SettingToChange = WheelID.ToString() + Position.ToString();
            Settings1.Default[SettingToChange] = NewName;
            Settings1.Default.Save();

Работает просто отлично. Единственная проблема заключается в том, что сохраненные значения не будут одинаковыми для каждого пользователя, но им просто придется иметь дело с этим!

Ну, вы могли бы принять подход базы данных.

Решение "в памяти" - это словари.

char WheelID = 'A';
int FilterPos = 4;
NewName = "FriendlyName";

string SettingIWant = WheelID.ToString() + FilterPos.ToString();
Dictionary<string, string> properties = new Dictionary<string, string>()
properties.Add(SettingIWant, NewName);

Ant, тогда вы можете получить доступ к данным, используя синтаксис скобки

properties[SettingIWant]

Конечно, есть. Просто переопределить [] оператор.

ХОРОШО. Я только что провел минимальное исследование, и вот что, я думаю, вы хотите сделать.

Во-первых, реализовать Dicitonary вещь Родриго Гарсиа, кроме использования System.Collections.Specialized.StringDictionary, Это один из типов, который можно добавить в файл настроек.

При настройке параметров приложения в разделе "Тип" выберите "Обзор...", если его нет в списке.

И убедитесь, что вы всегда записываете изменения, если коллекция меняется!

Другие вопросы по тегам