Где я должен хранить данные конфигурации пользователя? Конкретно путь к файлу данных? - PullRequest
0 голосов
/ 24 марта 2010

У меня есть приложение, использующее базу данных SQLite, и мне нужно, чтобы пользователь мог переместить файл данных и указать приложению, куда он был перемещен. Я использовал Entity Framework для создания модели, и по умолчанию она помещает строку подключения в файл App.Config. Из того, что я прочитал, если я внесу изменения в строку подключения, они не вступят в силу, пока приложение не будет перезапущено. Это кажется немного неуклюжим для моего использования. Я вижу, как я могу инициализировать свою модель и передать пользовательскую строку, но я не уверен, что лучше всего хранить базовые пользовательские настройки, такие как эта? Ини, Реестр, где-то еще? Я не хочу, чтобы пользователю приходилось каждый раз «открывать» файл, просто когда он перемещается, а затем приложение будет пытаться автоматически открываться с этого момента.

Ответы [ 3 ]

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

Посмотрите на Настройки приложения , чтобы узнать, как создать пользовательские настройки конфигурации, которые можно сохранить в файле user.config. Реестр более или менее заброшен в пользу новой файловой системы конфигурации на основе xml.

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

Вы можете создать класс настроек и затем сериализовать его в XML-файл с предварительно заданным именем в месте, заданном с помощью файла app.config. Затем вы можете контролировать частоту чтения файла в память самостоятельно. Единственный раз, когда вам нужно будет перезапустить приложение, было, если местоположение файла настроек изменилось.

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

Вам не нужно использовать строку подключения, добавленную в App.Config. Вы можете пропустить его добавление в мастере EDMX.

Затем вам нужно просто подключить строку подключения в любом месте по вашему выбору и передать ее в конструктор ObjectContext.

Вы можете поместить строку подключения во внешний файл, реестр или где угодно.

Возможно, имеет смысл иметь статический класс, который генерирует строку подключения и извлекает местоположение файла из общего источника, который пользователь может изменить (т. Е. Реестр, файл на диске, переменная среды и т. Д.)

...