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

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

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

<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' недопустим

Я неправильно понял синтаксис?

1 Ответ

0 голосов
/ 12 марта 2019

Только некоторые типы допускаются в качестве значений переменных в выражениях 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
...