В основном будут запущены несколько экземпляров нашего приложения, но они должны иметь отдельные пользовательские настройки. В настоящее время мы используем для этого «пользовательские настройки», и он отлично подходит для одного экземпляра (для каждого пользователя Windows), но мы хотели бы иметь возможность запускать несколько экземпляров с указанием пути настроек, переданного через командную строку. Есть ли способ сделать это со встроенными настройками .NET или нам придется сворачивать наши собственные?Есть ли способ сказать .NET, где искать файл настроек пользователя?
ответ
Я рекомендую разработать класс, который будет обрабатывать настройки приложения и принимает имя файла. Я должен был сделать это для библиотек DLL, которым нужны настройки приложения, а также помогает, если вы хотите сохранить свои настройки в нелокальном местоположении (например, в одном месте в сети).
Это даст вам гораздо больше гибкости - это определенно стоит инвестиций!
.Net имеет API-интерфейс поставщика конфигурации. app.config - это только предопределенная реализация этого API. Вы должны изучить API, чтобы либо расширить встроенный API, либо создать свой собственный.
Класс LocalFileSettingsProvider, который управляет файлом с пользовательскими настройками, совершенно невозможно настроить. Кто бы ни писал, что, должно быть, был парализован соображениями безопасности. Возможно, не необоснованно.
Если вы хотите придерживаться System.Configuration, вам необходимо реализовать собственный провайдер. Вероятно, лучший способ сделать это - начать с RegistrySettingsProvider sample. Это не поможет вам правильно обрабатывать файлы, но, по крайней мере, вам будет над чем поработать. Может помочь пара заглядов с рефлектором.
Я бы предложил хранить информацию о конфигурации в БД и читать на основе пользователя. В любом случае вы должны хранить информацию, специфичную для пользователя, для разных копий. Загружать приложение из базы данных и кэшировать все настройки.
Пользовательский интерфейс пользователя и профиль API для извлечения информации. Очень легко обновлять информацию в БД, а не обрабатывать файлы, которые находятся в системах пользователей.
Есть интересный CodeProject article, у которого есть пользовательский поставщик настроек. Вам нужна только небольшая настройка вашего кода, а затем она позволяет сохранять и загружать настройки в предоставленное вами местоположение файла.
- 1. Есть ли способ сказать ASP.NET-приложение, где искать статический основной html
- 2. Есть ли способ сказать, что сказать, что имя хоста, где был скомпилирован бинарный файл, использует gdb?
- 3. Как сказать rmiregistry, где искать классы?
- 4. Есть ли способ сказать WebStorm EAP, где найти android_home?
- 5. Есть ли способ сказать maven, где разместить артефакты?
- 6. Есть ли способ сказать хрюкать, где находится node_modules?
- 7. Как расширить файл настроек пользователя?
- 8. как мне сказать торт, где искать кофе?
- 9. Как сказать огурец, где искать файлы?
- 10. Есть ли способ сказать Flask игнорировать путь?
- 11. Есть ли способ сказать ∃! в прологе?
- 12. Где будет искать Python сборки .NET?
- 13. Есть ли способ .net для проверки пароля пользователя для простоты
- 14. Есть ли Base64Stream для .NET? где?
- 15. Есть ли способ сказать Eclipse, как разрешать неоднозначные имена Java?
- 16. Где находится файл настроек пользователя в Netbeans 6.5 на Vista?
- 17. Искать везде, где есть комментарии в Pycharm
- 18. Есть ли способ сказать, являются ли все условия истинными, иначе
- 19. Учитывая произвольную коллекцию, есть ли способ сказать, упорядочен ли он?
- 20. .net: Есть ли способ прочитать txt-файл снизу вверх?
- 21. Есть ли способ ReadWord() в .NET Framework?
- 22. Есть ли способ контролировать, где сгенерирован выходной файл T4?
- 23. Есть ли способ сказать Doxygen игнорировать (все) пространства имен?
- 24. Есть ли способ получить текущий NSLocaleCountryCode пользователя?
- 25. Есть ли способ «разблокировать» файл?
- 26. Сохраните файл настроек пользователя в каталоге исполняемых файлов
- 27. Есть ли способ аннулировать cookie пользователя?
- 28. Каков наилучший способ хранения пользовательских настроек для приложения .NET?
- 29. Как я могу сказать, Flash Builder 4, где искать FlashPlayer.exe
- 30. Есть ли способ сказать Smarty не печатать выражение?