Как создать взаимозаменяемые MethodInfos из MethodBuilders, созданного из LambdaExpressions? - PullRequest
0 голосов
/ 23 апреля 2020

В настоящее время я работаю над компилятором в C#, где поведение определяется LambdaExpressions, а затем использует CompileToMethod, преобразуется в MethodBuilders и сохраняется в DLL. Все функции публикуются c и stati c.

Однако я не смог найти способ извлечь полезный MethodInfo (или другой метод ссылки) из MethodBuilder, пока не определено поведение и не объявлен тип создано / запечатан. Это означает, что до этого момента невозможно использовать Expression.Call для вызова этих функций. Это делает невозможным саморекурсию или взаимную ссылку между двумя функциями.

В итоге я использовал Reflection для вызова функций во время выполнения, но это очень неоптимально, и мне все еще интересно, есть ли лучший способ.

Как сделать так, чтобы функции, созданные с помощью LambdaExpression.CompileToMethod (MethodBuilder), могли самостоятельно вызывать? c метод для DLL?

...