0

このコードは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
4

1 に答える 1

1

ExpressionMicrosoft.Scripting.Ast名前空間には、ジェネリッククラスと非ジェネリッククラスの2つのクラスがあるようです。を使用して非ジェネリックのものを強制してみてください.of()

Expression.of().Lambda(lambda_body)
于 2010-04-07T13:55:29.267 に答える