Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.10.2012, 11:39   #1
wol4aravio
Пользователь
 
Регистрация: 27.04.2012
Сообщений: 18
Вопрос Как сгенерировать библиотеку, чтобы ее функции принимали параметром пользовательский класс

Добрый время суток.

Каким образом можно решить следующую задачу: есть основное приложение, по ходу выполнения которого генерируется dll библиотека с набором функций. Как можно сделать, чтобы у этих функций параметры были не простыми типами int, double и т.д., а созданными ранее собственными классами?
wol4aravio вне форума Ответить с цитированием
Старый 17.10.2012, 11:49   #2
Luuzuk
Форумчанин
 
Аватар для Luuzuk
 
Регистрация: 18.01.2012
Сообщений: 975
По умолчанию

Можно, например, использовать Generics
http://msdn.microsoft.com/ru-RU/library/0x6a29h6.aspx
http://msdn.microsoft.com/ru-RU/library/twcad0zb.aspx
Благодарить в репутацию. Проклинать — туда же
Luuzuk вне форума Ответить с цитированием
Старый 17.10.2012, 12:25   #3
wol4aravio
Пользователь
 
Регистрация: 27.04.2012
Сообщений: 18
По умолчанию

Цитата:
Сообщение от Luuzuk Посмотреть сообщение
Можно, например, использовать Generics
Мне кажется, что Generics сюда не подойдет. Если более подробно о моей задаче, то выглядит она следующим образом: в принципе решается задача многомерной оптимизации, поэтому много раз вычисляется значение одной и той же функции в разных точках. Вычисление функций реализовывал с помощью деревьев. В виду того, что решаемые задаче крайне многомерны (порядка 20+ переменных), то решение занимает очень долгое время и основной объем времени тратится на подсчет функции, в основе которого лежит обход дерева. Была мысль один раз динамически сгенерировать dll файл в котором бы была задана необходимая функция, подключить его, вытащить оттуда метод через Reflections (MethodInfo) и потом вызывать. Получается, что у меня в программе есть некоторый собственный класс interval, и мне необходимо чтобы в качестве параметров функции в dll файле были именно interval, реализованные в самой программе.
wol4aravio вне форума Ответить с цитированием
Старый 17.10.2012, 15:16   #4
Скарам
Дружите с Linq ;)
Форумчанин
 
Аватар для Скарам
 
Регистрация: 15.10.2008
Сообщений: 822
По умолчанию

Что за собственный класс? Цель-извлечь функции для расчета? Зачем dll? Как плагин? Тогда MEF, по-моему подходит для данной задачи.
Не давай организму поблажки, каждый день тренируй его в шашки..

Последний раз редактировалось Скарам; 17.10.2012 в 15:22.
Скарам вне форума Ответить с цитированием
Старый 20.10.2012, 15:51   #5
GeorgeLucas
Пользователь
 
Аватар для GeorgeLucas
 
Регистрация: 20.10.2012
Сообщений: 11
По умолчанию

wol4aravio, Вы очень сумбурно изложили суть Вашей задачи. Я два раза перечитал и так ничего и не понял. Распишите, пожалуйста подробнее. А пока у меня ощущение, что Вы двигаетесь в неправильную сторону. Для оптимизации скорости нужно выбирать более эффективный алгоритм, а не генерировать библиотеки.

PS Для генерации библиотек есть Reflection.Emit, но очень сомневаюсь что Вам он нужен.
GeorgeLucas вне форума Ответить с цитированием
Старый 22.10.2012, 23:19   #6
wol4aravio
Пользователь
 
Регистрация: 27.04.2012
Сообщений: 18
По умолчанию

У меня стоит задача из области теории оптимизации, генетические алгоритмы, мне очень часто и в больших количествах нужно считать значение одной и той же функции (которая задается пользователем). Я эту проблему решил переводом выражения в дерево, соответственно подсчет значения требует обхода дерева. В связи с тем, что круг решаемых задач требует оптимизации очень сложных функций, то дерево выражения получается оооочень большим. Поэтому в голову и пришла мысль, что, возможно, есть алгоритмы, которые позволяют сделать это быстрее.
wol4aravio вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определить пользовательский класс... BoCbMou C# (си шарп) 0 18.04.2012 12:59
Как лучше составить класс: "Химический элемент", чтобы потом из них можно было формировать формулу хим вещества? Casper-SC C# (си шарп) 2 19.01.2012 09:30
Как сделать чтобы при функции sqr(x) засечки на оси не слипались HeRo!N Паскаль, Turbo Pascal, PascalABC.NET 3 20.04.2011 17:14
Экспорт функции C++ в библиотеку DLL lebedevmd Фриланс 2 12.04.2011 14:45
Пользовательский аналог функции Replace в Visual Basic yula92 Помощь студентам 0 02.06.2010 19:08