Совместное использование строки подключения между несколькими веб-проектами

OK У меня есть два веб-проекта WebProject1 и WebProject2. Оба требуют подключения к базе данных, поэтому все это находится в проекте C # .NET под названием Common.

Теперь мой вопрос заключается в том, что в настоящее время строка подключения для обоих одинакова, и на данный момент она жестко запрограммирована в классе DB (в общем проекте), но я хочу переместить ее в файл конфигурации.

Я бы очень хотел иметь файл конфигурации в проекте Common со строкой подключения, в которой затем используются оба веб-проекта. Возможно ли это, и если да, то как?


person Adam S-Price    schedule 02.11.2009    source источник


Ответы (2)


Есть несколько способов сделать это:

  1. поместите общие параметры конфигурации в machine.config, как показано здесь
  2. поместите общие параметры конфигурации в центральный файл и создайте ссылку на него в файле app.config каждого проекта, как показано здесь
  3. сохранить параметры конфигурации в реестре
person AdaTheDev    schedule 02.11.2009
comment
Ваше приложение может не иметь прав на чтение/запись из любого места на рабочем сервере, кроме каталога приложения. У него также может не быть прав на чтение/запись реестра. - person this. __curious_geek; 02.11.2009
comment
Мне не нравится вариант 3. Настройки реестра - это шаг назад, и их неудобно помещать в систему управления версиями. - person RichardOD; 02.11.2009
comment
Идея ссылки на configSource для строк подключения кажется довольно хорошей идеей. Все, что мне нужно сделать, это скопировать файл Common.config в целевой каталог bin. Я отдам его назад, чтобы посмотреть, насколько хорошо он работает, хотя не слишком уверен в жестком кодировании пути к файлу конфигурации в каталоге bin. - person Adam S-Price; 02.11.2009

Вот как это сделать.

Отделите свой DataLayer, который взаимодействует с базой данных, сделав его проектом библиотеки классов. Проект библиотеки классов создаст сборку, на которую вы сможете ссылаться в дальнейшем в любом проекте. В этом проекте добавьте «app.config» в корневой каталог проекта и сохраните строку подключения в файле app.config. Затем ваши классы доступа к данным в проектах могут ссылаться на строку подключения в файле app.config. Когда вы компилируете и развертываете свой проект доступа к данным в сборку, файл app.config внедряется в сборку. Теперь вы можете добавить эту сборку в качестве ссылки на любое количество проектов, которым вы хотите предоставить доступ к соединению и данным.

person this. __curious_geek    schedule 02.11.2009
comment
тогда как мы изменим строку подключения при развертывании? - person Muhammad Akhtar; 02.11.2009
comment
Вы можете изменить строку подключения в app.config перед развертыванием. - person this. __curious_geek; 02.11.2009