在Windows窗体应用程序中集成IronPython

时间:2017-03-22 08:17:36

标签: c# python winforms ironpython

我希望使用IronPython扩展我在C#中编写的Windows窗体应用程序,以使软件用户能够使用脚本扩展业务逻辑。我的想法是将强大的编辑器与语法高亮和IntelliSense集成。目前我不知道我应该使用哪个编辑器以及如何从Python脚本访问我在C#中编程的程序集。有没有人知道,如果有的话 任何涵盖此问题的教程,或者市场上是否有可用的组件,我可以将其集成到我的软件中以获得我需要的功能。

1 个答案:

答案 0 :(得分:2)

从IronPython调用自己的程序集时,你不必做任何事情,它使用反射来查找类型和成员

例如,我有一个OrderPrice类

public class OrderPrice
{
  public decimal GetTotalPrice(Tariff.enumTariffType tariffType)
  {
    //....
  }
}

然后在C#中我将可变价格添加到ScriptScope

OrderPrice price = .....

ScriptScope scope = scriptEngine.CreateScope();
scope.SetVariable("price", price);

然后在python脚本中,您只需调用所需的成员

if price.ErrorText == None:
    totalType = price.GetTariffType()
    totalPrice = price.GetTotalPrice(totalType)

如果你想从脚本中实例化C#对象,你必须使用clr模块并添加dll作为参考

import clr

clr.AddReferenceToFileAndPath(r"Entities.dll")

from Entities import OrderPrice

o = OrderPrice()