3
好吧...我试图将一个我在C#中声明的对象传递给一个带有IronPython的Python文件。将一个C#类对象传递给一个Python文件
所以这是我在想什么关:
C#类:
public class ParamObj
{
private string Obj_String;
private int Obj_Int;
public ParamObj(string lObjS, string lObjI)
{
Obj_String = lObjS;
Obj_Int = lObjI;
}
public string getString()
{
return Obj_String;
}
public int getInt()
{
return Obj_Int;
}
public setString(string lStr)
{
Obj_String = lStr;
}
public setInt(int lInt)
{
Obj_Int = lInt;
}
}
所以,我有我的课。现在我宣布类在我的C#项目,我把它传递给蟒蛇文件:
ParamObj Test_Object = new ParamObj("Test Object from C#", 1337);
var ipy = Python.CreateRuntime();
dynamic Test = ipy.UseFile("Test.py");
Test_Object = Test.ObjectAsParam(Test_Object);
Console.WriteLine(Test_Object.getString(), Convert.ToString(Test_Object.getInt()));
现在我想在我的Pythoin文件中使用对象,并调用它的方法。 所以在我Test.py的代码如下:
def ObjectAsParam(Obj):
print Obj.getString()
print str(Obj.getInt())
Obj.setString("Changed!")
Obj.setInt(1338)
return Obj
但我的编译器说,Python脚本不知道方法 的getString(),getInt()等
所以有没有办法来管理呢?
感谢
也许你需要在某处做一些演员? – Davio
@Davio我该怎么做?和哪里? (在编程中我没有那么高级) – VanDeath
我不知道如何在Python中完成它,但其要点是Python需要知道传入的对象是什么类型以便能够调用方法在上面。有没有办法动态调用这些方法? C#有反射,我不知道Python中是否有类似的东西。 – Davio