|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
17.10.2012, 11:39 | #1 |
Пользователь
Регистрация: 27.04.2012
Сообщений: 18
|
Как сгенерировать библиотеку, чтобы ее функции принимали параметром пользовательский класс
Добрый время суток.
Каким образом можно решить следующую задачу: есть основное приложение, по ходу выполнения которого генерируется dll библиотека с набором функций. Как можно сделать, чтобы у этих функций параметры были не простыми типами int, double и т.д., а созданными ранее собственными классами? |
17.10.2012, 11:49 | #2 |
Форумчанин
Регистрация: 18.01.2012
Сообщений: 975
|
Можно, например, использовать Generics
http://msdn.microsoft.com/ru-RU/library/0x6a29h6.aspx http://msdn.microsoft.com/ru-RU/library/twcad0zb.aspx
Благодарить в репутацию. Проклинать — туда же
|
17.10.2012, 12:25 | #3 |
Пользователь
Регистрация: 27.04.2012
Сообщений: 18
|
Мне кажется, что Generics сюда не подойдет. Если более подробно о моей задаче, то выглядит она следующим образом: в принципе решается задача многомерной оптимизации, поэтому много раз вычисляется значение одной и той же функции в разных точках. Вычисление функций реализовывал с помощью деревьев. В виду того, что решаемые задаче крайне многомерны (порядка 20+ переменных), то решение занимает очень долгое время и основной объем времени тратится на подсчет функции, в основе которого лежит обход дерева. Была мысль один раз динамически сгенерировать dll файл в котором бы была задана необходимая функция, подключить его, вытащить оттуда метод через Reflections (MethodInfo) и потом вызывать. Получается, что у меня в программе есть некоторый собственный класс interval, и мне необходимо чтобы в качестве параметров функции в dll файле были именно interval, реализованные в самой программе.
|
17.10.2012, 15:16 | #4 |
Дружите с Linq ;)
Форумчанин
Регистрация: 15.10.2008
Сообщений: 823
|
Что за собственный класс? Цель-извлечь функции для расчета? Зачем dll? Как плагин? Тогда MEF, по-моему подходит для данной задачи.
Не давай организму поблажки, каждый день тренируй его в шашки..
Последний раз редактировалось Скарам; 17.10.2012 в 15:22. |
20.10.2012, 15:51 | #5 |
Пользователь
Регистрация: 20.10.2012
Сообщений: 11
|
wol4aravio, Вы очень сумбурно изложили суть Вашей задачи. Я два раза перечитал и так ничего и не понял. Распишите, пожалуйста подробнее. А пока у меня ощущение, что Вы двигаетесь в неправильную сторону. Для оптимизации скорости нужно выбирать более эффективный алгоритм, а не генерировать библиотеки.
PS Для генерации библиотек есть Reflection.Emit, но очень сомневаюсь что Вам он нужен. |
22.10.2012, 23:19 | #6 |
Пользователь
Регистрация: 27.04.2012
Сообщений: 18
|
У меня стоит задача из области теории оптимизации, генетические алгоритмы, мне очень часто и в больших количествах нужно считать значение одной и той же функции (которая задается пользователем). Я эту проблему решил переводом выражения в дерево, соответственно подсчет значения требует обхода дерева. В связи с тем, что круг решаемых задач требует оптимизации очень сложных функций, то дерево выражения получается оооочень большим. Поэтому в голову и пришла мысль, что, возможно, есть алгоритмы, которые позволяют сделать это быстрее.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Определить пользовательский класс... | 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 |