2013-12-09 2 views
2

Я знаю, что могу пройти дерево выражения linq и сам испустить код IL. Но я стараюсь избегать этого. В этом случае использование компилятора CodeDom или Roslyn не является вариантом (я должен начать с существующего набора выражений linq, генерируемых проприетарным DSL). Любые идеи? Спасибо!Можно ли испускать и сохранять IL-код из выражений linq?

+0

Почему вы не можете пройти дерево выражений LINQ? –

+0

Вы ищете [Выражение . Метод компиляции] (http://msdn.microsoft.com/en-us/library/bb345362 (v = vs.110) .aspx)? См. Также [Могу ли я использовать отражение для проверки кода в методе?] (Http://stackoverflow.com/q/2693881/76217) – dtb

+0

Roy Dictus. Я не хочу. Испускать IL вручную, это сложно и подвержено ошибкам. (Я делал это в прошлом, и это было непросто). Я ищу что-то похожее на assmebly builder, но вместо создания тела метода с опкодом используйте некоторый согласованный linq. –

ответ

3

Вы можете скомпилировать выражение в сборку, используя CompileToMethod(). Это имеет некоторые ограничения, особенно в том, что MethodBuilder, который вы передаете методу, должен быть для статического метода. Но в противном случае это должно быть именно то, о чем вы просите.

+0

Yup. Это то, что я искал. Ты жжешь! –

Смежные вопросы