我正在使用IronPython從我的C#應用程序執行python腳本。我想讓腳本訪問我的C#類以及一些用於從腳本創建表單的System類。以下是python腳本內完成進口:IronPython「無法導入名稱ClassName」
import clr
clr.AddReference('MyApp')
from MyApp import MyClass
我從C#執行腳本如下:
ScriptEngine engine = Python.CreateEngine();
ScriptScope scope = engine.CreateScope();
engine.ExecuteFile(Directory.GetCurrentDirectory()+"/python/test.py", scope);
程序無法在此行我的腳本,返回「無法導入名爲MyClass 「:
from MyApp import MyClass
我的文件層次結構是這樣的:
root folder
-MyApp.exe
-python
-test.py
該程序沒有添加引用到我的.exe文件的麻煩,但它不會加載類。更重要的是令人費解的是,這個工程:
import MyApp
是上述線路輸入我的名字空間,也命名爲「MyApp的」,從我的組裝,「MyApp的」?我試圖從命名空間MyApp中刪除MyClass,但這沒有改變。我嘗試將MyApp建立爲.dll並將其插入到根目錄和腳本目錄中,但即使經過長時間的互聯網搜索,也沒有任何成效。
爲什麼IronPython不能找到MyClass?爲什麼它能夠成功地從MyApp導入MyApp,並且在發生這種情況時它究竟在做什麼?
MyClass.cs:
// Omitted "using" statements
namespace MyApp{
class MyClass{
public static void MethodIWantToUse(){}
}
}