UiPath使用For Each时触发“Option Strict On禁止后期绑定”错误求助
解决Option Strict On禁止后期绑定的问题
问题原因
jsonResult是JObject类型(来自Json.NET),直接通过jsonResult("data")(0)("name")取值时,索引器属于强类型调用,不会触发后期绑定检查。但For Each活动中默认将currentItem推断为Object类型,此时使用currentItem("name")属于后期绑定,在Option Strict On的规则下会被禁止。
解决方案
1. 强类型化用户对象(推荐)
- 在UiPath项目中添加一个
User类,匹配用户数据的结构:Public Class User Public Property Name As String ' 可按需添加其他字段,如Id、Email等 End Class - 修改
Deserialize JSON活动的TypeArgument为List(Of User),让反序列化后的jsonResult("data")成为强类型的用户列表。 - For Each活动中的
currentItem会自动推断为User类型,直接通过currentItem.Name即可安全获取用户名,完全符合类型检查规则。
2. 显式转换currentItem类型
如果不想创建类,可在For Each内部将currentItem转为JObject后再取值:
- 添加
Assign活动,定义userObj变量为JObject,赋值语句:userObj = CType(currentItem, JObject) - 之后通过
userObj("name").Value(Of String)()或userObj("name").ToString()获取用户名。
3. 临时关闭Option Strict(不推荐)
- 打开项目设置,找到
Option Strict选项并设置为Off。 - 此方法会绕过类型检查,增加代码出错风险,仅作为临时应急方案,不建议长期使用。
内容的提问来源于stack exchange,提问作者Pip
相关产品推荐
相关产品推荐

