我想要做的是将正在运行的应用程序的AppDomain引入到加载的(Iron)Ruby脚本中。
下面是我想要实现的一个示例:
using System;
using Microsoft.Scripting;
using Microsoft.Scripting.Hosting;
using IronRuby;
namespace Testing
{
public class MainClass
{
public MainClass() { }
public override string ToString() { return "Hello World"; }
public static void Main()
{
ScriptEngine engine = IronRuby.Ruby.CreateEngine();
ScriptScope scope = engine.CreateScope();
String code = "p Testing::MainClass.new.to_str";
ScriptSource script = engine.CreateScriptSourceFromString(code, SourceCodeKind.SingleStatement);
script.Compile();
script.Execute(scope);
}
}
}当然,代码无法工作,因为AppDomain或作用域(我不确定实际是什么)没有加载到IronRuby引擎中。
所以问题是,我如何让代码工作(打印"Hello World!")?
发布于 2010-08-27 17:23:02
在这里,我们可以在运行时加载程序集:
using System;
using System.Reflection;
using Microsoft.Scripting;
using Microsoft.Scripting.Hosting;
using IronRuby;
namespace Testing
{
public class MainClass
{
public MainClass() { }
public override string ToString() { return "Hello World"; }
public static void Main()
{
ScriptEngine engine = IronRuby.Ruby.CreateEngine();
engine.Runtime.LoadAssembly(Assembly.LoadFile(Assembly.GetExecutingAssembly().Location));
ScriptScope scope = engine.CreateScope();
String code = "p Testing::MainClass.new";
ScriptSource script = engine.CreateScriptSourceFromString(code, SourceCodeKind.SingleStatement);
script.Execute(scope);
}
}
}https://stackoverflow.com/questions/3582508
复制相似问题