Итак, я пытаюсь исследовать это все утро и не повезло. Я пытаюсь найти способ динамического создания метода/delegate/lambda, который возвращает новый экземпляр определенного класса (неизвестный до выполнения), который наследуется от определенного базового класса.Создание динамического метода
Я могу гарантировать следующее о неизвестном/динамическом классе
- Он всегда будет наследовать от одного известного класса (Row)
- Он будет иметь по крайней мере 2 конструкторов (один принимающий длинные и один принимающий IDataRecord)
Я планирую doign следующее:
- Поиск всех гр дивчины, которые имеют определенный атрибут на них
- Создания делегат/метод/лямбды/все, что создает новый экземпляр класса
- Сохранения делегата/независимо наряду с некоторыми свойствами в STRUCT/классе
- ВКЛАДЫША struct в hashtable
- При необходимости вытащите информацию из хеш-таблицы и вызовите делегат/все, чтобы получить новый экземпляр класса и вернув его/добавив его в список/etc.
Мне нужна помощь только с № 2 выше !!! Я не знаю, с чего начать. Мне действительно нужен какой-то справочный материал, чтобы начать меня, или некоторые ключевые слова, которые нужно бросить в Google.
Это для компактного/простого в использовании ORM для нашего офиса здесь. Я понимаю, что это не так просто, но, работая, нужно сделать код невероятно простым.
Пожалуйста, дайте мне знать, если вам нужна дополнительная информация! И спасибо заранее! :)
Никогда не видел хорошего использования выражений, но вы немного открыли мне глаза :) – Stormenet
Мне нравится стиль, но он скомпилирован с реальным ИЛом и отличается от производительности как long long(); – Andrey
@Andrey: 'expr.Compile()' компилирует выражение в real IL. Производительность такая же, как если бы выражение lambda было скомпилировано во время компиляции, так что это так хорошо, как можно получить :-) – dtb