Как прочитать все настройки пользователя из App.config - PullRequest
0 голосов
/ 16 января 2020

Я работал над приложением 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

Но как я могу прочитать их все?

...