从IronPython调用C#函数

时间:2015-06-29 20:17:02

标签: c# ironpython

我有一个C#function()的库(.dll),我想从IronPython中调用它。这里显示的一个例子 - CMD_Handshake() - 在a中定义,不带参数,并返回一个布尔值...

正是如此,

    public bool CMD_Handshake()
    {
        .
    .
    return (Send(out b_handshake_code));

    }

[来自IronPython]

clr.AddReferenceToFileAndPath()成功添加了.dll引用。

已成功导入。 该类已成功导入。 CMD_Handshake()被认为是该类的方法 "应用"是该类的实例化。

但是:当我调用该函数时,我从Python收到以下错误消息:

  
    
      

App.CMD_Handshake()       Traceback(最近一次调用最后一次):         文件"",第1行,in       TypeError:CMD_Handshake()只取1个参数(给定0)

    
  

(我觉得我好......所以...关闭。)

1 个答案:

答案 0 :(得分:1)

问题是bool CMD_Handshake()是一个实例方法而不是静态方法。这意味着您应该创建App的实例并在其上调用方法:

app = App()
app.CMD_Handshake()
  

TypeError:CMD_Handshake()只取1个参数(0给定)

此错误是由于您将实例方法作为静态方法调用,因此它希望 App 的实例作为其第一个参数。