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

Automation Anywhere Metabots调用C#类库:List<string>参数传参求助

解决Automation Anywhere Metabot向C# DLL传递List的问题

我之前在项目里也碰到过一模一样的情况——AA Metabot的数组变量和C#的List<string>直接对接总是没反应,后来摸清楚是类型映射的问题,下面是亲测可行的几种方案:

方案一:给DLL新增适配方法(最推荐)

AA Metabot的字符串数组和C#的string[]是直接兼容的,但和List<string>没法自动转换。所以最简单的办法是在你的C# DLL里新增一个重载方法,用string[]作为参数,内部再转成List<string>调用原逻辑:

// 你原来的业务方法
public void YourOriginalLogic(List<string> inputList)
{
    // 这里写你的原有处理逻辑
    Console.WriteLine($"接收到 {inputList.Count} 个元素");
}

// 新增的适配方法,专门给Metabot调用
public void YourLogicForMetabot(string[] inputArray)
{
    // 把AA传过来的字符串数组转成List<string>
    List<string> convertedList = new List<string>(inputArray);
    // 调用原方法
    YourOriginalLogic(convertedList);
}

之后在Metabot里配置参数时:

  • 选择Array类型的变量,变量子类型设为String
  • 调用DLL时,把这个数组变量绑定到YourLogicForMetabot的string[]参数上

方案二:不改DLL的情况下转JSON传递(应急方案)

如果因为权限或者其他原因不能修改DLL,可以在Metabot里把数组序列化成JSON字符串,再传给DLL的某个字符串参数,在DLL内部反序列化成List<string>:

  1. 在Metabot里,用“Loop”组件遍历数组,把每个元素拼接成JSON数组格式的字符串(比如["元素1","元素2"])
  2. 在DLL里新增一个接收字符串参数的方法,用JSON库反序列化:
using Newtonsoft.Json; // 需要引用Newtonsoft.Json NuGet包

public void YourLogicWithJson(string jsonInput)
{
    List<string> inputList = JsonConvert.DeserializeObject<List<string>>(jsonInput);
    YourOriginalLogic(inputList);
}

这种方法要注意处理JSON格式错误的情况,不如方案一稳定。

排查小技巧

如果还是没输出,先排查这几点:

  • 在DLL里加日志(比如写入本地文本文件),确认是否接收到了Metabot传递的参数
  • 检查Metabot的数组变量是否正确赋值,有没有空元素或者未初始化的情况
  • 确认DLL的方法是public的,并且Metabot里选择了正确的方法名和参数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:27:03