美文网首页
C#与python结合编程

C#与python结合编程

作者: oo水桶oo | 来源:发表于2017-03-14 11:04 被阅读615次

    C#与python结合编程

    形式:用C#写界面和事件触发,调用python脚本进行逻辑和数据处理。 好处:编写好界面和事件触发之后,可以动态改动py脚本,不需要重新编译程序。 缺点:使用的电脑需要装有python,同时程序需附带多个ironpython的dll。  

    方法: 

    1、安装ironpython

     2、新建C#项目。添加引用:IronPython.dll,Microsoft.Dynamic.dll,Microsoft.Scripting.dll 

    3、在C#文件添加python的调用。 

    //声明并定义调用python的类 

    ScriptEngine engine;

     ScriptScope scope; 

    object myInstance; 

    engine = Python.CreateEngine(); 

    scope = engine.CreateScope();

     var code = engine.CreateScriptSourceFromString("XXXXX");

    //通过string文本调用py语句,也可以调用fromfiles函数来调用py脚本 

    code.Execute(scope);

    //执行上述py代码 

    var myClass = scope.GetVariable>("Control"); 

    //把py脚本中的类提到C#中,或者是调用py脚本中的类或者变量 

    myInstance = myClass("hello world", textBox1.Text);

    //实例化该类,并能调用构造函数进行初始化 

    //把C#的变量传入到py中 

    engine.Operations.SetMember(myInstance, "listBox1", listBox1); 

    engine.Operations.SetMember(myInstance, "treeView1", treeView1); 

    engine.Operations.SetMember(myInstance, "richTextBox1", richTextBox1);

     //调用py脚本中的类成员函数 

    engine.Operations.GetMember>(myInstance, "GetTree")(textBox1.Text); 

    4、在python文件添加C#类 

    #引入ironpython库和C#库 

    #添加python库 

    import clr,sys 

    clr.AddReference('IronPython') 

    clr.AddReference('System.Windows.Forms') 

    clr.AddReference('System.Drawing') 

    sys.path.append("C:\Python27\DLLs") 

    sys.path.append("C:\Python27\Lib") 

    #把C#的控件类提出来,也可以直接import,但是调用这些空间的时候就要把调用写全,例如

    System.Windows.Forms.TreeNode 

    from System.Windows.Forms import TreeNode 

    from System.Windows.Forms import ListBox 

    from System.Windows.Forms

    import TreeView from System.Windows.Forms

    import TextBox from System.Windows.Forms 

    import RichTextBox from System.Drawing import Color 

    把C#空间类实例化 listBox1 = ListBox()

    出处(http://www.wpf123.com/)

    相关文章

      网友评论

          本文标题:C#与python结合编程

          本文链接:https://www.haomeiwen.com/subject/svbcnttx.html