Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Class <-> Dll 
:(
    Опции темы
Dottik
Дата 2.12.2006, 00:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 13.10.2006
Где: Ukraine

Репутация: нет
Всего: 2



Имеется ClassLibrary в которой находится класс X.

Проблема:
  В програме нужно создать два обекта Х, но:
  они должны быть из разных ClassLibrary (dll файлов) (реализация некоторых методов может быть разной).

Обходил эту проблему следующим образом:
создавал два проекта ClassLibrary X1, X2

минус: разные неймспейсы. Если в будующем переписать только ClassLibrary то для замены одной нужен ДЛЛ нужен будет один неймспейс, а для замены другой второй НСпейс, а это не совсем удобно.

Вопрос:
Можна ли както связать класс с dll из которой брать его реализацию? Если нет, то как бы вы посоветовали обойти эту проблему? Спасибо.


PM MAIL   Вверх
Piphon
Дата 2.12.2006, 05:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 30.3.2004
Где: Екатеринбург

Репутация: нет
Всего: 2



SDK + Plugins... В гл. программе сделай подключение рефлексией: перебераем все типы сборки в плагине и если он наследуется от SDK типа то создаем объект.
--------------------
Non Progredi Est Regredi...
PM MAIL ICQ   Вверх
mr.DUDA
Дата 2.12.2006, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Указанная задача решается элементарно с пом. интерфейса или абстрактного базового класса. Объявляем его в общей длл, которую используем во всех остальных длл; реализуем методы как необходимо; конкретный экземпляр объекта создаём с пом. фабрики классов, использующей для выбора рефлексию или др. способы: например abstract factory в общей длл и concrete factory в каждой из остальных; abstract создаёт и держит в себе список объектов concrete factory и при создании объекта каждая конкретная фабрика определяет, может ли она создать объект по переданным параметрам.


--------------------
user posted image
PM MAIL WWW   Вверх
ivashkanet
Дата 2.12.2006, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



mr.DUDA, почти как на..й послал smile (хотя все верно  smile )

Abstract Factory/Абстрактная фабрика

PM MAIL WWW ICQ   Вверх
mr.DUDA
Дата 2.12.2006, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



ivashkanetsmile 


--------------------
user posted image
PM MAIL WWW   Вверх
Dottik
Дата 2.12.2006, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 13.10.2006
Где: Ukraine

Репутация: нет
Всего: 2



Спасибо вам! Вы действительно помогли  smile 
PM MAIL   Вверх
ivashkanet
Дата 2.12.2006, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



Цитата(mr.DUDA @  2.12.2006,  13:41 Найти цитируемый пост)
ivashkanet, smile  

 smile  smile 
PM MAIL WWW ICQ   Вверх
mr.DUDA
Дата 2.12.2006, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Пожалуйста  smile 


--------------------
user posted image
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.1136 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.