1
我一直在嘗試在我正在編寫的C#程序中嵌入Ruby。 我可以執行腳本,但是我遇到了interop問題。 我似乎無法從Ruby中提取變量。無法從IronRuby更新變量值
讓我們考慮以下幾點:
String before = "hello world";
String after = "changed";
ScriptRuntime mRuntime = Ruby.CreateRuntime();
ScriptEngine mEngine = mRuntime.GetEngine("ruby");
ScriptScope scope = mEngine.CreateScope();
String code = "p msg\nmsg = '" + after + "'";
ScriptSource script = mEngine.CreateScriptSourceFromString(code, SourceCodeKind.Statements);
scope.SetVariable("msg", before);
script.Execute(scope);
String result = scope.GetVariable("msg");
(本來這是用TryGetVariable實現)
在我的單元測試我設置的結果斷言==「改變」,但它承載它的默認值。 我也嘗試在Ruby(本地和$全局)中創建一個變量並閱讀它,但它似乎永遠不存在。
我有點卡住了,任何幫助都會被推定。
This Works。 IronRuby可以使用更好的文檔進行互操作。 – plasmarobo 2014-09-29 21:36:16