Я пишу приложение, которое позволяет пользователю создавать собственные алгоритмы для вычисления значений над коллекцией объектов.Проще говоря, у меня будет строка с исходным кодом класса с одним методом.
Решение, которое я реализовал, состоит в том, чтобы скомпилировать исходный код строки в отдельную dll для каждого такого пользовательского алгоритма, а затем загрузить их с помощью Assembly.Load и создать экземпляр класса, сохраненного в dll.С точки зрения ремонтопригодности это означает, что мне нужно хранить исходный код в БД (например), а также управлять существованием скомпилированных dll (пересоздать, скомпилировав исходный код, если он отсутствует)
Есть ли лучший способ сделать это, учитывая новые возможности .Net 4.0?
РЕДАКТИРОВАТЬ : исходным кодом является C #, и я использую CSharpCodeProvider для компиляции кода.Все пользовательские классы являются производными от базового класса и переопределяют метод, который фактически содержит логику вычислений.Что я действительно хотел бы сделать, так это избавиться от управления dll и не потерять (слишком сильно) производительность при компиляции всех классов при каждом запуске моего приложения