Я работал над приложением WinForm для мониторинга активности около 21 Сервера. Он создает страницу html, которую я отображаю в элементе управления браузера в WinForm MDI, а также отправляю на сервер IIS Intr anet. Мой менеджер любит это, так что я могу видеть, что это станет сервисом Windows в будущем. Проблема в том, что он также хотел, чтобы я использовал Настройки на страницах конфигурации WinForm, чтобы пользовательские настройки были сохранены. Это проблема, если нет WinForm. Чтобы он мог работать как Winform и Windows Service Я хочу прочитать все пользовательские настройки в словарь, как я делаю с AppSettings, используя что-то вроде :
NameValueCollection nvc = System.Configuration.ConfigurationManager.AppSettings;
foreach (string strKey in nvc.AllKeys)
if (dictConfigSettings.ContainsKey(strKey) == false)
dictConfigSettings.Add(strKey, nvc[strKey]);
. Раздел userSettings в App.config выглядит примерно так:
<userSettings>
<CorrApp_Dashboard.Settings1>
<setting name="TabCorrPubcheckBoxPROD" serializeAs="String">
<value>False</value>
</setting>
Так что я решил, что могу прочитать раздел userSetting следующим образом:
NameValueCollection UserSettings = System.Configuration.ConfigurationManager.GetSection("userSettings") as NameValueCollection;
if (UserSettings.Count > 0)
foreach (var key in UserSettings.AllKeys)
if (dictConfigSettings.ContainsKey(key) == false)
dictConfigSettings.Add(key, UserSettings[key]);
Но UserSettings по-прежнему был нулевым. Я пробовал разные строки:
"userSettings/CorrApp_Dashboard.Settings1" // the one I expected to work
"userSettings/CorrApp_Dashboard.Settings1/Default" // maybe would work
"userSettings/CorrApp_Dashboard.Settings1.Default" // maybe would work
"Settings1"
"Settings1.Default"
Шить ... Вопрос в том, как заставить эту работу читать все значения? Да, я знаю, что могу читать и писать их:
string strConnectinStringDev Settings1.Default.textBoxConnectionStringDev;
Settings1.Default.textBoxConnectionStringDev = strConnectinStringDev
Но как я могу прочитать их все?