![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 2 Всего: 59 |
Господа, я тут случайно услышал о динамической сборке. Вопрос такой, а можно ли решить следующую задачу: приложение-сервер, который вызывает функции из библиотеки dll на С++ по требованию клиента. Хотелось бы организовать следущее. Что бы при модификации и смене этой dll, сервер перегенерил бы сборку, отвечающую за вызовы функций из библиотеки.
-------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Самый простой способ сделать это - с пом. CSharpCodeProvider.CompileAssemblyFromFile. Вот только проблема: однажды загруженную сборку выгрузить нельзя. Так что либо придётся держать в памяти сервера постоянно растущую кучу подгруженных сборок, либо создавать отдельный аппдомен, грузить туда и все вызовы делать через AppDomain.Invoke -------------------- ![]() |
|||
|
||||
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 2 Всего: 59 |
Это как раз не проблема. Естесвенно предполагается, что для подмены dll сервер должен выгружаться
-------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 2 Всего: 59 |
Проблема в том, как зачитать из dll информацию, необходимую для создания сборок.
-------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
А какая информация нужна? Можно сделать метод в длл, который юзать через [DllImport], и передавать через него все нужные параметры. А их вставлять в файл-шаблон .cs, который компилить в сборку. -------------------- ![]() |
|||
|
||||
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 2 Всего: 59 |
Ну я так полагаю, что нужно имя экспортируемой функции, число и тип параметров.
-------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
| 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. |