2010-04-06 4 views
3

Я разрабатываю библиотеку классов (C#), которую я буду использовать для своих разных проектов (позже). В моей библиотеке dll библиотеки будет использоваться строка строки/данных соединения проекта, которая будет ссылаться на мою новую dll. Как мне это сделать?
Допустим, у меня есть проект библиотеки классов под названием «CLP» и проект веб-сайта «WP». Я могу добавить ссылку на файл CLP.dll, но как я передам объект строки соединения/данных в эту DLL? поскольку CLP.dll будет обращаться к db на основе строки подключения «WP».Совместное использование строки подключения

Не уверен, что моя проблема ясна или нет!

ответ

1

Если вы создаете библиотеку классов, и для нее требуется строка соединения под названием «ConnectionString», если в проекте, который вы вызываете ее, есть строка подключения в файле конфигурации сети/приложения «ConnectionString», тогда это должно быть хорошо.

Так что, используя ваши названия проектов. Ваш проект класса «CLP» с кодом доступа данных в настройках будут соединение с использованием строки «ConnectionString»:

_serverConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString); 

, а затем вы код против этой связи.

В файле web.config в вашем вебе-проекте («РГ») добавить следующее:

<connectionStrings><add name="ConnectionString" connectionString="Data Source=.\SQL2008;Integrated Security=True" providerName="System.Data.SqlClient" /></connectionStrings> 

Очевидно, указывающий на источник данных и т.д., который вы используете для проекта «РГ».

Надеюсь, это поможет.

+0

Таким образом, я буду использовать одно и то же имя строки соединения во всем моем другом проекте, который добавит ссылку на «CPL». Не какой-то общий способ, с помощью которого я могу легко передать имя строки подключения в DLL «CPL»? – coure2011

+0

Одним словом да, см. Ответ @ SlackerCoder. Параметром будет ключ настройки конфигурации строк соединения, который вы хотите найти из раздела конфигурации :-) – WestDiscGolf

+1

Думая об этом; вы могли бы построить путь, который предложил @SlackerCoder, также записывая dll доступа к данным в заводской схеме. Если вы хотите действительно увлечься, вы можете сделать его жидкостным интерфейсом и иметь точки впрыска, чтобы помочь в модульном тестировании. Просто бросив некоторые идеи. – WestDiscGolf

0

Просто добавить на @ WestDiscGolf отвечают:

Вы также можете использовать параметр для передачи в имени ConnectionString из конфигурационного файла (так что вы всегда не должны использовать «ConnectionString»).

Например: В классе DLL вы можете иметь:

public void buildConnection(string sConnectionString){ 
    //Some code, variables, etc 

    _serverConnection = new SqlConnection(ConfigurationManager.ConnectionStrings[sConnectionString]); 

    //Some more code, etc etc 

} 

и назвав его:

buildConnection("MyConnectionStringNameInTheConfigFile"); 

** Примечание: Я использую аннулируются для типа возвращаемого значения в качестве образца, если вы вернуть, просто замените его. Я не знаю ваш проект, поэтому я не хочу делать предположения о том, как вы собираетесь использовать соединение!

Смежные вопросы