Политика Set-Variable: тип возвращаемого значения выражения недопустим

Выражения политики Azure APIM имеют доступ к объект контекста, имеющий свойство Variables, которое должно иметь тип IReadOnlyDictionary<string, object>. Я должен иметь возможность добавлять значения в этот словарь через политика установки переменных. Я хочу иметь возможность добавлять в словарь любой объект, но я сталкиваюсь с ошибками, когда пытаюсь добавить что-либо, кроме строки.

Например, когда я пытаюсь сохранить это в определении моей входящей политики:

<set-variable name="regexGroups" value="@(Regex.Match("inputString","regex").Groups)" />

Я получаю сообщение об ошибке:

Ошибка в элементе set-variable в строке X, столбце Y: тип возвращаемого выражения «System.Text.RegularExpressions.GroupCollection, System» не допускается.

GroupCollection наследуется от, object, поэтому оно должно быть допустимым значением в Variables словаре. Почему это не работает?

Если я попытаюсь явно указать его как объект:

<set-variable name="regexGroups" value="@((object)Regex.Match("inputString","regex").Groups)" />

Я получаю сообщение об ошибке:

Ошибка в элементе 'set-variable' в строке X, столбце Y: тип возвращаемого значения выражения 'System.Object' недопустим.

Я ошибаюсь в синтаксисе?


person BobbyA    schedule 12.03.2019    source источник


Ответы (1)


Только некоторые типы разрешены в качестве значений переменных в выражениях APIM, объект не является одним из них, вот полный список того, что разрешено в качестве значений переменных на данный момент:

  • 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 []
  • IResponse
  • Jwt
  • Newtonsoft.Json.Linq.JToken
person Vitaliy Kurokhtin    schedule 12.03.2019
comment
face-palm Тип переменных сбил меня с толку, мне следовало внимательно перечитать документацию по Set-Variable. Спасибо! - person BobbyA; 12.03.2019