C# IronRuby中的访问表达式方法

C# IronRuby中的访问表达式方法,c#,.net,ruby,ironruby,dynamic-language-runtime,C#,.net,Ruby,Ironruby,Dynamic Language Runtime,此代码在C#中运行良好: 但构建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\ir

此代码在C#中运行良好:

但构建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
用于#的未定义方法“Lambda”(NoMethodError)
from-e:1:in“load”
from-e:1

在Microsoft.Scripting.Ast命名空间中似乎有两个
表达式类:泛型类和非泛型类。尝试使用
.of()
强制非泛型:


System.Linq.Expressions.Expression类位于System.Core程序集中。你引用过吗?我说的是Microsoft::Scripting::Ast::Expression你确定你的代码中没有拼写错误
Expression
?(你在评论中写了“快报”。)
undefined method `Lambda' for #<TypeGroup: Microsoft::Scripting::Ast::Expression, Microsoft::Scripting::Ast::Expression[TDelegate]> (NoMethodError)
    from -e:1:in `load'
    from -e:1
Expression.of().Lambda(lambda_body)