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