| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Базы данных под .NET > Менеджер подключений к БД и Project Data Source |
| Автор: SuperPrize 9.7.2009, 16:19 |
| Даже не знаю с чего начать Необходимо реализовать простую вещь менеджер подключений к базе. При этом чтобы работал с Project Data Source (в том смысле чтобы строка подключения была видна в выпадающем списке доступных подключений). Все вроде здорово если строку мы храним в app.config и меняем ее при запуске приложения. Она видна в списке и при выборе подключения строку подключения мы можем поменять(вариант использования - сервер разработки всегда известен и статичен, а рабочий - всегда настраивается при запуске). А что если усложнить задачу. Есть class liblary которому необходимо использовать ту же строку подключения (которая будет известна только в рантайме) что у приложения. Прочитать файл с настройками приложения в рантайме мы конечно можем. Но вот незадача. В списке подключений при добавлении нового Data Source строки мы естессно не увидим. При создании Project Data Source генерируется класс (ну их много генерируется нас интересует только тот который имяTableAdapter с методом InitConnection) в котором и присваиваться строка подключения. Можно конечно залезать в каждый такой класс и править там инициализацию. Но как то не айс. Есть какие нибудь еще предложения? |
| Автор: jonie 24.7.2009, 23:19 |
| я так понял вы о XSD схемах речь ведете, если так то они генерируют partial классы и мы можем их расширить нашим методом (в другом файле вообще, не в том что генерируется) вроде "InitConnection", в котором (подсмотрев что нам негенит мастер (а точнее xsd.exe утилита)) и менять коннекшены. У нас, например, connection string нельзя подсмотреть в конфиге - при логине на сервере аутентификации запускается исполняемый outofprocess COM сервер (реализация singleton собственно), который и выдает строки соединения запрашивающим клиентам... COM - потому что кроме .NET есть в проекте и VB6 и VBScript и C++ Править то что автогенерируется нельзя - оторвут руки другие разработчики. |