Как ввести строку подключения в мою конфигурацию nhibernate? - PullRequest
0 голосов
/ 31 января 2011

Мне нужно иметь возможность конфигурировать мою строку подключения во время выполнения, желательно из файла конфигурации было бы самым простым решением. Однако я не могу использовать ConnectionString.FromAppSetting или ConnectionString.FromConnectionStringWithKey. На мою сборку для доступа к данным ссылаются из консольных приложений, выигрышных форм и Интернета. И хотя я могу добавить «Настройки» в свой проект, это всего лишь dll, и я не перенесу этот app.config с ним в место назначения фактической сборки приложений.

Не думаю, что это слишком необычно. Как обычно это обрабатывается? Является ли это ярким примером того, когда использовать внедрение зависимостей (которое я могу настроить из отдельного файла?) Я подаю строку подключения к своему объекту «единицы работы», но я хотел бы сделать это статически, чтобы собрать конфиг и сессионный завод только один раз.

Я могу определенно уточнить, если это необходимо, но я не уверен, лучший способ спросить.

1 Ответ

2 голосов
/ 31 января 2011

Вы можете использовать hibernate.cfg.xml (он работает на каждой платформе). В качестве альтернативы вы можете сделать следующее

  1. Inherit DriverConnectionProvider
  2. переопределяет свойство ConnectionString и считывает строку подключения из любого места.
  3. Предоставьте вашему новому провайдеру соединений вашу конфигурацию nhibernate в коде или в xml.

Вы можете использовать ServiceLocation внутри вашего DriverConnectionProvider или использовать EnhancedBytecodeProvider для unhaddins. Расширенный поиск bytecodeprovider и Fabio Maulo в Google.

Вот пример: Динамическое изменение информации о пользователе в строке подключения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...