Compartir a través de

设置变量

适用于:所有 API 管理层级

set-variable 策略声明set-variable变量,并为其分配通过表达式或字符串文本指定的值。 如果表达式包含文本,则会将其转换为字符串,值的类型将为 System.String

注意

按照策略声明中提供的顺序设置策略的元素和子元素。 详细了解如何设置或编辑 API 管理策略

策略语句

<set-variable name="variable name" value="Expression | String literal" />

属性

属性 说明 必需
name 变量的名称。 不允许使用策略表达式。
value 变量的值, 可以是表达式或文本值。 允许使用策略表达式。

使用情况

允许的类型

set-variable 策略中使用的表达式必须返回以下基本类型之一。

  • System.Boolean
  • System.SByte
  • System.Byte
  • System.UInt16
  • System.UInt32
  • System.UInt64
  • System.Int16
  • System.Int32
  • System.Int64
  • System.Decimal
  • System.Single
  • System.Double
  • System.Guid
  • System.String
  • System.Char
  • System.DateTime
  • System.TimeSpan
  • System.Byte?
  • System.UInt16?
  • System.UInt32?
  • System.UInt64?
  • System.Int16?
  • System.Int32?
  • System.Int64?
  • System.Decimal?
  • System.Single?
  • System.Double?
  • System.Guid?
  • System.String?
  • System.Char?
  • System.DateTime?

示例

以下示例演示入站节中的 set-variable 策略。 此设置变量策略创建 isMobile 布尔 context 变量,该变量在 User-Agent 请求标头包含文本 iPadiPhone 的情况下设置为 true。

<set-variable name="IsMobile" value="@(context.Request.Headers.GetValueOrDefault("User-Agent","").Contains("iPad") || context.Request.Headers.GetValueOrDefault("User-Agent","").Contains("iPhone"))" />

后续步骤

有关使用策略的详细信息,请参阅: