我有一个 C# 函数库 (.dll),我想从 IronPython 调用它。此处显示的示例 - CMD_Handshake() - 在 a 中定义,不带参数,并返回 bool 值...
因此,
public bool CMD_Handshake()
{
.
.
return (Send(out b_handshake_code));
}
[来自 IronPython]
clr.AddReferenceToFileAndPath() 成功添加 .dll 引用。
已成功导入。 类已成功导入。 CMD_Handshake() 被识别为该类的方法 “App”是类的实例化。
但是:当我调用该函数时,我收到来自 Python 的以下错误消息:
block 引用> block 引用>App.CMD_Handshake() Traceback (most recent call last): File "", line 1, in TypeError: CMD_Handshake() takes exactly 1 argument (0 given)
(我觉得我太……接近了。)
最佳答案
问题在于 bool CMD_Handshake()
是一种实例方法,而不是静态方法。这意味着您应该创建一个 App
实例并调用它的方法:
app = App()
app.CMD_Handshake()
TypeError: CMD_Handshake() takes exactly 1 argument (0 given)
此错误是由于您将实例方法作为静态方法调用,因此它需要App
的实例作为其第一个参数。 p>
关于c# - 从 IronPython 调用 C# 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31124782/