zoukankan      html  css  js  c++  java
  • IronPython 与 .NET 交互

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Reflection;
    using IronPython.Hosting;
    using Microsoft.Scripting.Hosting;
    
    namespace WindowsFormsApplication3
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void toolStripButton1_Click(object sender, EventArgs e)
            {
                if (tbxCode.Text.Trim().Length == 0) return;
    
                try
                {
                    ScriptEngine engine = Python.CreateEngine();
                    //加载必须的程序集
                    engine.Runtime.LoadAssembly(Assembly.GetAssembly(typeof(example)));
                    dynamic result = engine.Execute(tbxCode.Text);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                }
            }
        }
    }
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.IO;
    using System.Windows.Forms;
    
    namespace WindowsFormsApplication3
    {
        public class example
        {
            public int Add(int m, int n)
            {
                return m + n;
            }
    
            public int Sub(int m, int n)
            {
                return m - n;
            }
    
            public string AddStr2(string a, string b)
            {
                return a + b;
            }
    
            public static string AddStr(string a, string b)
            {
                return a + b;
            }
    
            public void WriteText(string text)
            {
                string file = Application.StartupPath + "/log.txt";
                using (StreamWriter writer = new StreamWriter(file, true))
                {
                    writer.WriteLine(text);
                }
            }
        }
    }

    Python中调用C#中的代码如下:

    from WindowsFormsApplication3 import example
    s1 = example.AddStr("old","test")
    e = example()
    s2 = e.AddStr2("cool","girl")
    e.WriteText(s1)
    e.WriteText(s2)

    界面如下:

    代码比较简单,做备忘之用。

    IronPython 下载地址 : http://ironpython.codeplex.com/

    Python Vs2012的插件下载地址:http://pytools.codeplex.com/

  • 相关阅读:
    SVM – 线性分类器
    解决mybatis generator无法覆盖XML
    windows下IDEA的terminal配置bash命令
    mysqldump定时备份数据库
    linux清理日志脚本
    MySQL主从同步配置
    mysql binlog日志自动清理及手动删除
    linux搭建FTP服务器并整合Nginx
    mysql解除死锁状态
    git取消跟踪已版本控制的文件
  • 原文地址:https://www.cnblogs.com/bruceleeliya/p/2948201.html
Copyright © 2011-2022 走看看