![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
Dottik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 13.10.2006 Где: Ukraine Репутация: нет Всего: 2 |
Имеется ClassLibrary в которой находится класс X.
Проблема: В програме нужно создать два обекта Х, но: они должны быть из разных ClassLibrary (dll файлов) (реализация некоторых методов может быть разной). Обходил эту проблему следующим образом: создавал два проекта ClassLibrary X1, X2 минус: разные неймспейсы. Если в будующем переписать только ClassLibrary то для замены одной нужен ДЛЛ нужен будет один неймспейс, а для замены другой второй НСпейс, а это не совсем удобно. Вопрос: Можна ли както связать класс с dll из которой брать его реализацию? Если нет, то как бы вы посоветовали обойти эту проблему? Спасибо. |
|||
|
||||
Piphon |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 107 Регистрация: 30.3.2004 Где: Екатеринбург Репутация: нет Всего: 2 |
SDK + Plugins... В гл. программе сделай подключение рефлексией: перебераем все типы сборки в плагине и если он наследуется от SDK типа то создаем объект.
--------------------
Non Progredi Est Regredi... |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Указанная задача решается элементарно с пом. интерфейса или абстрактного базового класса. Объявляем его в общей длл, которую используем во всех остальных длл; реализуем методы как необходимо; конкретный экземпляр объекта создаём с пом. фабрики классов, использующей для выбора рефлексию или др. способы: например abstract factory в общей длл и concrete factory в каждой из остальных; abstract создаёт и держит в себе список объектов concrete factory и при создании объекта каждая конкретная фабрика определяет, может ли она создать объект по переданным параметрам.
-------------------- ![]() |
|||
|
||||
ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
||||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
ivashkanet,
![]() -------------------- ![]() |
|||
|
||||
Dottik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 13.10.2006 Где: Ukraine Репутация: нет Всего: 2 |
Спасибо вам! Вы действительно помогли
![]() |
|||
|
||||
ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
||||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Пожалуйста
![]() -------------------- ![]() |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |