4

好的...我正在尝试将我在 C# 中声明的对象传递给带有 IronPython 的 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# 项目中声明类并将它传递给 PYthon 文件:

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 文件中使用 Object 并调用它的方法。因此,我的 Test.py 中的代码如下:

def ObjectAsParam(Obj):

    print Obj.getString()
    print str(Obj.getInt())

    Obj.setString("Changed!")
    Obj.setInt(1338)

    return Obj

但是我的编译器说 python 脚本不知道方法 getString()、getInt() 等。

那么有没有办法管理呢?

谢谢

4

1 回答 1

3

确保 ParamObj 是一个公共类。

于 2012-11-12T17:58:00.913 回答