Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# IronRuby、DLR、范围包含_C#_Ironruby_Dynamic Language Runtime - Fatal编程技术网

C# IronRuby、DLR、范围包含

C# IronRuby、DLR、范围包含,c#,ironruby,dynamic-language-runtime,C#,Ironruby,Dynamic Language Runtime,我想做的是将正在运行的应用程序的AppDomain引入加载的(Iron)Ruby脚本 下面是我想要实现的一个例子: using System; using Microsoft.Scripting; using Microsoft.Scripting.Hosting; using IronRuby; namespace Testing { public class MainClass { public MainClass() { } public

我想做的是将正在运行的应用程序的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);
        }
    }
}
当然,代码不起作用,因为IronRuby引擎中没有加载AppDomain或作用域(我不确定实际是什么)


所以问题是,如何使代码工作(打印“Hello World!”)?

现在,我们可以在运行时加载程序集:


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);
        }
    }
}

能否更新此示例以与Windows Phone Visual Studio 2012兼容?因为我在C#Windows Phone项目中尝试使用IronRuby时会出错。