Методы выражения доступа в IronRuby - PullRequest
0 голосов
/ 07 апреля 2010

Этот код отлично работает в C #:

Expression.Lambda(LambdaBody);

Но ни один из методов построения AST не виден из IronRuby.Мне потребовались библиотеки Microsoft.Scripting.Core и Microsoft.Scripting.Мне нужно что-то еще?Вот код IronRuby:

require 'C:\reorganize\software\ironruby-1.0rc3\ironruby\bin\microsoft.scripting.core'
require 'C:\reorganize\software\ironruby-1.0rc3\ironruby\bin\microsoft.dynamic'
require 'C:\reorganize\software\ironruby-1.0rc3\ironruby\bin\microsoft.scripting'
include Microsoft::Scripting::Ast
p Expression.Lambda(lambda_body) #i have already constructed the lambda body

дает:

undefined method `Lambda' for #<TypeGroup: Microsoft::Scripting::Ast::Expression, Microsoft::Scripting::Ast::Expression[TDelegate]> (NoMethodError)
    from -e:1:in `load'
    from -e:1

1 Ответ

1 голос
/ 07 апреля 2010

Кажется, в пространстве имен Microsoft.Scripting.Ast есть два Expression класса: универсальный и неуниверсальный.Попробуйте форсировать неуниверсальный, используя .of():

Expression.of().Lambda(lambda_body)
...