gpt4 book ai didi

.net - 如何调试 "Wrong number of arguments or invalid property assignment"vbscript .NET 互操作

转载 作者:行者123 更新时间:2023-12-01 11:09:54 26 4
gpt4 key购买 nike

我有一个用 C# 编写的 .NET 程序集。它被标记为 ComVisible,有一个 guid,已签名,已注册 (/codebase)。我没有为 COM 部分正式定义接口(interface)。

我通过 VBscript 使用这个程序集。

有一个重载方法 - 一种形式采用单个字符串参数,第二种形式采用两个字符串。两者都从同一个程序集中返回另一个 .NET 类型。我这样调用它:

set foo = WScript.CreateObject("Prog.Id")
' the following succeeds
set bar = foo.Method1("string")
' the following fails
set baz = foo.Method1("string1", "string2")

第一次调用 Method1 成功。第二个失败了“参数数量错误或属性分配无效”。

我该如何调试它?

在测试中,如果我定义一个像这样重载的脑残简单 .NET 类,我可以从 VBScript 调用它,没问题。我的“真实”程序集还有其他原因导致失败。我如何弄清楚它是什么?

最佳答案

我不确定这是否真的如此,但似乎 COM 不允许重载方法:herehere

第一个链接似乎暗示可能有解决此问题的方法(也许有明确的接口(interface)定义和属性?),但我对此表示怀疑。

您还可以使用 OleView.exe 检查生成的类型库,以查看在您的程序集上使用 tlbexp 后,您的两个方法对 COM 客户端来说是什么样的。

关于.net - 如何调试 "Wrong number of arguments or invalid property assignment"vbscript .NET 互操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1151642/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com