Есть ли способ сообщить .NET, где искать файл пользовательских настроек? - PullRequest
3 голосов
/ 17 марта 2010

В основном будет запущено несколько экземпляров нашего приложения, но они должны иметь отдельные пользовательские настройки. В настоящее время мы используем «пользовательские настройки» для этого, и он отлично работает для одного экземпляра (для каждого пользователя Windows), но мы хотели бы иметь возможность запускать несколько экземпляров, например, путем установки параметров, переданным через командную строку. Есть ли способ сделать это с помощью встроенных настроек .NET, или нам придется свернуть свои собственные?

Ответы [ 5 ]

3 голосов
/ 17 марта 2010

Класс LocalFileSettingsProvider, который управляет файлом с пользовательскими настройками, совершенно невозможно настроить. Кто бы ни написал, это должно быть парализовано проблемами безопасности. Возможно, не безосновательно.

Если вы хотите придерживаться System.Configuration, вам нужно будет внедрить собственного провайдера. Вероятно, лучший способ сделать это - начать с RegistrySettingsProvider образца . Это не поможет вам правильно обработать файл, но, по крайней мере, у вас будет что-то, на чем можно будет основываться. Несколько взглядов с помощью Reflector могут помочь.

1 голос
/ 17 марта 2010

Я рекомендую разработать класс, который будет обрабатывать настройки приложения и принимать имя файла. Я должен был сделать это для библиотек DLL, которые нуждались в настройках приложения, и это также помогает, если вы хотите сохранить свои настройки в нелокальном месте (например, в одном месте в сети).

Это даст вам больше гибкости - это определенно стоит инвестиций!

0 голосов
/ 12 мая 2016

Есть интересная статья CodeProject , в которой есть поставщик пользовательских настроек. Вам нужно лишь немного изменить свой код, а затем он позволит вам сохранить и загрузить настройки в указанное вами место файла.

0 голосов
/ 17 марта 2010

Я бы предложил хранить информацию о конфигурации в БД и читать в зависимости от пользователя. В любом случае вы должны поддерживать конкретную информацию пользователя различных копий. При загрузке приложения читаем из БД и кешируем все настройки.

Персонализация пользователя и API профиля для получения информации. Обновлять информацию в БД очень просто, а не работать с файлами, расположенными в пользовательских системах.

0 голосов
/ 17 марта 2010

.Net имеет API поставщика конфигурации. app.config - это просто предопределенная реализация этого API. Вам следует изучить использование API для расширения встроенного API или создания собственного.

...