Azure APIM策略表达式可以访问具有context object属性的Variables
,该属性应该是IReadOnlyDictionary<string, object>
类型。我应该能够通过set-variable policy为该词典添加值。我希望能够将任何对象添加到字典中,但是当我尝试添加除字符串之外的任何内容时,我遇到了错误。
例如,当我尝试将其保存到我的入站策略定义中时:
<set-variable name="regexGroups" value="@(Regex.Match("inputString","regex").Groups)" />
我收到的错误是:
第X行,第Y列元素'set-variable'出错:表达式返回类型'System.Text.RegularExpressions.GroupCollection,System'不允许。
GroupCollection
继承自object
,因此它应该是Variables
字典中的有效值。为什么这不起作用?
如果我尝试将其显式转换为对象:
<set-variable name="regexGroups" value="@((object)Regex.Match("inputString","regex").Groups)" />
我收到的错误是:
第X行,Y列元素'set-variable'出错:不允许表达式返回类型'System.Object'
我的语法错了吗?
只有一些类型被允许作为APIM表达式中的变量值,对象不是其中之一,这里是目前允许作为变量值的完整列表: