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 ファイルでオブジェクトを使用して、そのメソッドを呼び出したいと考えています。したがって、私の 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 に答える