通过 Azure API 管理的 C# 表达式出现 ToString() 错误

Pin*_*ong 4 azure azure-api-management

我在尝试将类型转换为字符串时遇到错误,如下所示:

  <set-variable name="a" value="@(context.Variables["a"].ToString())" />
Error in element 'set-variable' on line 16, column 10: Usage of member 'ToString' of type 'System.Object' is not supported within expressions


 <set-variable name="a" value="@(context.Variables["a"])" />
    Error in element 'set-variable' on line 16, column 10: Expression return type 'System.Object' is not allowed
Run Code Online (Sandbox Code Playgroud)

https://learn.microsoft.com/en-us/azure/api-management/api-management-policy-expressions

Kai*_*ter 6

.ToString() 将不起作用。

请改用此表达式:

@(context.Variables.GetValueOrDefault<string>("a"))
Run Code Online (Sandbox Code Playgroud)

或者如果您想拥有空默认字符串以防变量不存在或为空:

@(context.Variables.GetValueOrDefault<string>("a",""))
Run Code Online (Sandbox Code Playgroud)