Как получить доступ к строке подключения из другого проекта - PullRequest
10 голосов
/ 06 июня 2011

Я получил два проекта в своем решении в Visual Studio 2010.
Проект 1 содержит app.config с ConnectionString.

Как я могу получить доступ к этому ConnectionString из Проекта 2?

Поскольку они оба используют один и тот же ConnectionString, я бы предпочел, чтобы в моем решении был только один экземпляр.

Ответы [ 5 ]

5 голосов
/ 06 июня 2011

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

Используйте Add an Existing Item для проекта, в который вы хотите добавить файл - * 1006Кнопка * имеет небольшую стрелку вниз, если вы нажмете, что вы можете выбрать Add as Link.

Это добавит файл как ссылку из исходного местоположения, то есть у вас будет только один физический файл.

3 голосов
/ 30 ноября 2012

Другая идея состоит в том, чтобы использовать контейнер IoC, такой как Ninject, для вставки строки подключения в конструктор класса, в котором он вам нужен.

Примечание: вам не нужно использовать Entity Framework для использования Ninject.

Смотрите это сообщение: Ninject - связывающие конструкторы с аргументами / строка подключения Entity Framework

1 голос
/ 06 июня 2011

Помимо ссылки на файл, предложенной в ответе Одедом, вы можете рассмотреть возможность рефакторинга вашего приложения для использования сборки доступа к данным commom, которая содержит класс DatabaseConnectionFactory или тому подобное. Эта сборка будет содержать строку подключения в своих настройках

0 голосов
/ 06 июня 2011

Если есть только определенный раздел, которым вы хотели бы поделиться (connectionStrings в вашем случае), тогда связывание не будет работать для вас. Вместо этого вы можете сделать что-то вроде this :

The solution is to store the connection strings on the web.config of the parent web app. 
Note that the web site root is also an app, so you can store a web.config in there (i.e. c:\inetpub\wwwroot\web.config) which will be inherited by all apps under it.
c:\inetpub\wwwroot\web.config -> common configuration. 
c:\inetpub\wwwroot\app1\web.config -> configuration for app1
c:\inetpub\wwwroot\app2\web.config -> configuration for app2. 

In the case the default web site root is off limits, you can create a root app to contain all other apps and store the common configuration there. 
c:\inetpub\wwwroot\myrootapp\web.config-> common configuration. c:\inetpub\wwwroot\myrootapp\app1\web.config -> configuration for app1 c:\inetpub\wwwroot\myrootapp\app2\web.config -> configuration for app2.
0 голосов
/ 06 июня 2011

Если в вашем Project 2 есть ссылка на Project 1, то Project1 может иметь класс с доступным свойством ConnectionString.

Кстати, «класс» может читать строку подключения из app.config

...