【发布时间】:2009-01-23 03:35:31
【问题描述】:
先介绍一些背景(如果有帮助的话):
我的应用程序是最近升级到 .Net Framework v3.5 的基于 Web 的框架,但不使用母版页/用户控制系统。它更类似于 MVC 模式(虽然更老),并从模板的响应流中输出纯 HTML。 Python 表达式允许实现一些规则和模板变体。
老办法
在 C# 中嵌入 IronPython 1.x 引擎时,我们能够编写如下代码:
PythonEngine pe = new PythonEngine();
Assembly a = Assembly.LoadFile("path to assembly");
pe.LoadAssembly(a);
pe.Import("Script");
在 ipy 2.0 中没有 Import() 方法,并且 ImportModule() 方法的工作方式似乎不同。 Import() 减少了在我们编写的每个 python 脚本中添加一行的需要,例如:
from MyAssembly import MyClass
MyClass 充满了静态方法,这意味着对 MyClass.MyMethod() 的调用非常有效。我不能只实例化一个对象并将其分配给范围内的变量,因为 MyClass 包含在其中的程序集是在运行时动态加载的。
现在讨论问题
我已经整理了 IronPython 2.0 集成的所有其他部分,但不希望我的实现者在他们编写的每个脚本的顶部键入“from MyAssembly import MyClass”(如果没有必要,这似乎很愚蠢在 ipy 1.x 中)并且可能在一段时间内也是一个支持问题。
最后是问题
有人遇到过这个问题并解决了吗?我是否以错误的方式为 DLR 做事?还是我遗漏了一些明显的东西?
我不确定需要有人提供帮助的详细信息,但我希望这已经足够了。
【问题讨论】:
标签: c# ironpython embedding