【发布时间】:2011-09-25 14:37:11
【问题描述】:
JScript 允许使用 .apply() 之类的时髦功能,您可以通过名称调用方法,传递参数数组来调用方法。但是,这适用于 JScript (javascript) 对象,显然不适用于 COM 组件 - 但这是我正在寻找的功能。
有没有办法通过名称和来自 JScript 的动态参数调用 COM 对象方法?我找不到任何东西。
谢谢!
【问题讨论】:
标签: reflection com vbscript wsh jscript
JScript 允许使用 .apply() 之类的时髦功能,您可以通过名称调用方法,传递参数数组来调用方法。但是,这适用于 JScript (javascript) 对象,显然不适用于 COM 组件 - 但这是我正在寻找的功能。
有没有办法通过名称和来自 JScript 的动态参数调用 COM 对象方法?我找不到任何东西。
谢谢!
【问题讨论】:
标签: reflection com vbscript wsh jscript
动态构建您想要作为字符串调用的脚本,然后使用 eval() 调用它。例如eval("someObj.method()") 或eval(objName + "." + methodName + "(" + args.join(",") +")")。
【讨论】:
由于我使用的是 WSC(Windows 脚本组件),因此我制定了一种解决方法,即使用 XSL 生成包装脚本,转换输入 WSC(这是一个 XML 文件)。 XSL 为每个方法生成一个带有 case 的 switch{} 语句,为每个方法提供正确数量的参数。
不完全是我所追求的,但我得到了更好的错误检查:)
【讨论】: