Как сохранить пары ключ-значение в настройках приложения во время выполнения?

StackOverflow https://stackoverflow.com/questions/179063

  •  05-07-2019
  •  | 
  •  

Вопрос

Как динамические пары ключ-значение объектов могут храниться в app.config при использовании api настроек приложения во время выполнения?

Я пытался разобраться в себе, но не смог найти ни одного значимого примера или документации.

Мне кажется, что.Классы сетевого словаря не могут быть сериализованы в XML, чтобы сохранить их в app.config

Единственный способ сделать это - использовать пользовательские XML-сериализованные классы, или есть какие-то другие способы?

Это было полезно?

Решение 2

После еще нескольких поисков в сети я нашел очень хорошую (хотя и очень длинную) статью, которая описывает в отделе .Модель конфигурации сети:

Разгадка тайн конфигурации .NET 2.0

Я также нашел кое-что очень полезное:

Конструктор Разделов конфигурации

Добавление Visual Studio для визуального проектирования разделов конфигурации и генерации основных XSD-файлов.Я надеюсь, что кто-нибудь найдет это полезным.

Другие советы

Вы должны быть в состоянии сделать что-то вроде этого:

// Open App.Config of executable
System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

// Add an Application Setting with a name Key and a Value stored in variable called Value
config.AppSettings.Settings.Add("Key", Value );

// Save the changes in App.config file.
config.Save(ConfigurationSaveMode.Modified);

Всегда думал, что изменение app.config во время выполнения программы считается плохой практикой. App.config должен использоваться для установки и настройки программы; не для динамических вещей, которые приложение на самом деле модифицирует.

Предлагаем вам создать отдельный " KeyValue.xml " файл для динамических объектов.

В зависимости от того, что именно вам нужно, вы можете попробовать System.Collections.ObjectModel.KeyedCollection < TKey, TValue > ;. Это работает только в том случае, если вы можете получить ключ для элемента из самого элемента, но в этом случае это хорошо для этой цели.

Это общий словарь? Если так:

XML-сериализуемый универсальный словарь

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top