zoukankan      html  css  js  c++  java
  • 嵌入 IronRuby 到 CLR 主程序的例子

    下面的代码实现了 IronRuby 脚本继承 C# 主程序提供的类,并被 C# 调用的例子,对于使用 Iron 语言来做 .NET 程序插件或脚本是一个很好的参考。

    using System;
    using System.Reflection;
    using Microsoft.Scripting;
    using Microsoft.Scripting.Hosting;
    using IronRuby;

    namespace IronRubyTest1
    {
        public class Human
        {
            protected string GetInternalCondition()
            {
                return "all good";
            }
        }

        class Program
        {
            static void Main(string[] args)
            {
                const string RubyCode = @"
    class Doctor < IronRubyTest1::Human
      def check_condition()
        puts 'Condition: ' + get_internal_condition()
      end
    end";
                ScriptRuntime runtime = Ruby.CreateRuntime();
                ScriptEngine engine = Ruby.GetEngine(runtime);
                ScriptScope scope = engine.CreateScope();

                //让 DLR 载入包含 Human 类的 Assembly
                runtime.LoadAssembly(Assembly.GetExecutingAssembly());
                engine.Execute(RubyCode, scope); //执行 Ruby 代码
                dynamic globals = engine.Runtime.Globals;
                dynamic house = globals.Doctor.@new(); //创建 Doctor 的实例
                house.check_condition();

                Console.WriteLine("Press any key to close...");
                Console.ReadKey();
            }
        }
    }

    代码下载:http://pastebin.com/0tHWuAmH

    参考资料

    http://www.voidspace.org.uk/ironpython/hosting_api.shtml#id2

    《IronRuby In Action》

  • 相关阅读:
    Python中替换的三种方法
    深入浅出:分布式和集群--转自码农翻身微信公众号
    如何把GitHub中的开源项目导入到Eclipse
    Socket Tools的使用
    LoadRunner 测试Socket接口函数说明
    Apache Jemeter 开发插件
    netstat 查看连接数
    redis缓存机制【转载】
    内存溢出OOM
    transform-translate位移
  • 原文地址:https://www.cnblogs.com/oldrev/p/2062154.html
Copyright © 2011-2022 走看看