【问题标题】:ToString() error with C# expression via Azure API Management通过 Azure API 管理的 C# 表达式的 ToString() 错误
【发布时间】:2019-07-17 10:50:05
【问题描述】:

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

  <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

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

【问题讨论】:

    标签: azure azure-api-management


    【解决方案1】:

    .ToString() 将不起作用。

    改用这个表达式:

    @(context.Variables.GetValueOrDefault<string>("a"))
    

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

    @(context.Variables.GetValueOrDefault<string>("a",""))
    

    【讨论】:

      【解决方案2】:

      您可以尝试如下投射:

      @((string)context.Variables["a"]))
      

      【讨论】:

        猜你喜欢
        • 2016-04-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多