为什么这个 azure apim 策略表达式失败了?

why is this azure apim policy expression failing?

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

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

但是,这不起作用:

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

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

"Error in element 'log-to-eventhub' on line 1, column 21: Code block expression must be enclosed in curly brackets."

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

尝试将其重写为(注意末尾的分号):

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

或(没有“return”):

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

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

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

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

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