Синхронизируйте настройки между приложением форм и службой Windows (или любым другим n-уровневым режимом)

У меня есть служба Windows, которая выполняет ряд периодических действий, и я хочу изменить настройки этой службы из приложения Windows Forms. Я не уверен, однако, в том, как наилучшим образом убедиться, что в сервисе установлены самые последние пользовательские настройки (как часто запускать, какие папки использовать для каких-либо вещей, что еще может указать пользователь). Пользователь может изменить настройки в любое время, по желанию, и я хотел бы, чтобы служба знала об этом практически сразу. Вот варианты, которые я взвешиваю:

Форма и общий ресурс службы используют один и тот же объект «Настройки» из третьего общего проекта, а форма использует вызов WCF «UpdateSettings (newSettings)», чтобы сообщить службе, что произошли изменения (или, необязательно, вызов обновлять каждую отдельную настройку, хотя это кажется много по разным вызовам). В настоящее время я использую WCF для базовых сообщений, но объект настроек может быть огромным, так как там много других вещейФорма и служба используют общий файл конфигурации (XML или тот же объект настроек из # 1, но сериализованный на диск). Форма просто записывает новую копию объекта после того, как он был изменен, и служба периодически проверяет и выбирает его, если он новый, обновляя свою копию настроекТо же, что №2, но с базовым вызовом WCF, который сообщает сервису получить настройки. По сути, версия «по требованию» вместо «опроса» # 2.

Я знаю, что лучше всего субъективно, но мне интересны любые очевидные доводы "за" или "против" этих выборов. Поскольку мне придется сохранять свои настройки между запусками приложения (перезагрузками и т. Д.), Мне все равно придется сериализовать настройки на диск, поэтому я уже склоняюсь к # 2 или # 3. Мне нужно место на диске, где я могу сохранить настройки, но, возможно, папка AppData будет работать нормально, хотя это позволит только администраторам изменять настройки, так как они единственные, у кого есть разрешение на запись в это местоположение. (где его может прочитать каждый пользователь, включая учетную запись службы).

Спасибо за ваше понимание!

Ответы на вопрос(4)

Ваш ответ на вопрос