我将 IronPython 嵌入到 C# 中,作为修改我正在处理的程序的一种方式。因此,有多个文件需要一次使用。
Code = "";
Engine = Python.CreateEngine();
Runtime = Engine.Runtime;
var files = Directory.GetFiles("script", "*.py", SearchOption.AllDirectories);
foreach (var tr in files.Select(file => new StreamReader(file)))
{
Code += "\n";
Code += tr.ReadToEnd();
tr.Close();
}
Scope = Engine.CreateScope();
Engine.CreateScriptSourceFromString(AddImports(Code)).Execute(Scope);
这需要 /script 中的所有文件并将它们组合成一个字符串以从它们创建脚本源,这当然是一个有缺陷的方法,因为如果类不按字母顺序继承,则会发生 UnboundNameException
class bar(foo):
pass
class foo():
pass
我将如何以正常方式编译所有文件?