【问题标题】:why is this azure apim policy expression failing?为什么这个 azure apim 策略表达式会失败?
【发布时间】:2016-02-06 00:14:52
【问题描述】:

我为 Azure APIM 编写了一个简单的策略表达式,其中包括一个代码块表达式。这有效:

@{ return "start" + new Random().Next().ToString(); }

但是,这不起作用:

@{ return "start" + new Random().Next().ToString() + "end" }

我尝试了第二个示例的几种变体,但无法让 APIM 策略管理器接受它。 APIM 策略错误返回以下错误:

“第 1 行第 21 列元素 'log-to-eventhub' 中的错误:代码块表达式必须用大括号括起来。”

但是,上面的表达式是在大括号中的。知道如何在上面的第二个示例中实现我想要做的事情吗?

【问题讨论】:

  • 编码 new Random().Next() 如果代码在紧密循环中运行,会导致重复值。

标签: azure azure-api-management


【解决方案1】:

尝试改写为(注意末尾分号):

@{ return "start" + new Random().Next().ToString() + "end"; }

或(不带“return”):

@{ "start" + new Random().Next().ToString() + "end" }

【讨论】:

    【解决方案2】:

    您也可以只使用单个语句表达式和时髦的新 c# 6 字符串插值

    @($"start {new Random().Next().ToString()} end")
    

    【讨论】:

      【解决方案3】:

      尝试在末尾添加 ;(分号)。

      @{ return "start" + new Random().Next().ToString() + "end"; }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多