You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在不传递参数的情况下调用invokeMonoMethod方法?

解决invokeMonoMethod无参数调用时报错的问题

我来帮你搞定这个问题!从你给出的报错信息来看,Uncaught TypeError: Cannot read property 'length' of undefined,这说明invokeMonoMethod底层的callMethod函数(在loader.js第106行)期望接收一个参数数组,但你完全不传参数的时候,这个参数位置的值是undefined,它尝试读取undefined的length属性,自然就抛出了错误。

解决方案

你只需要在调用时传递一个空数组作为最后一个参数即可,即使目标C#方法不需要任何参数:

invokeMonoMethod('MonoSanityClient', 'MonoSanityClient', 'Examples', 'getMessage', [])

原理说明

这类跨语言调用的封装方法通常会把参数统一放在一个数组里处理,方便批量传递和遍历。当你不传参数时,这个数组参数就变成了undefined,而代码里没有做“参数不存在时默认设为空数组”的处理,所以才会触发报错。传入空数组后,函数能正常读取length(值为0),进而正确调用无参数的C#方法。

如果之后需要给目标方法传参数,直接把参数按顺序放在这个数组里就行,比如:

invokeMonoMethod('MonoSanityClient', 'MonoSanityClient', 'Examples', 'getMessageWithArgs', ['hello', 123])

内容的提问来源于stack exchange,提问作者Guilherme Corsino

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:13:50