c# - 从 IronPython 调用 C# 函数

标签 c# ironpython

我有一个 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 的以下错误消息:

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/

相关文章:

c# - 像在亚洲一样测试 iOS 应用程序

c# - 如何初始化具有构造函数的动态类

c# - 更好的 .NET SDK 支持——佳能还是尼康?

.net - 如何从托管的 IronPython 访问内部对象?

linux - 如何在 Linux 上调用 IronPython

c# - 为什么在设置对 "System.IO.FileNotFoundException: Could not load file or assembly"的引用时得到 "copylocal=false"?

c# - 修改一个点,UnboundNameException

c# - 在 C# Web 应用程序中嵌入 IronPython 2 的问题

c# - 从包含的用户控件为窗口中的某些控件设置样式

c# - 如何围绕 Random.Next() 限制进行设计?