#azure #azure-api-management
#azure #azure-api-management
Вопрос:
Выражения политики Azure APIM имеют доступ к контекстному объекту, который имеет Variables
свойство, которое должно иметь тип IReadOnlyDictionary<string, object>
. Я должен иметь возможность добавлять значения в этот словарь с помощью политики набора переменных. Я хочу иметь возможность добавлять любой объект в словарь, но я сталкиваюсь с ошибками при попытке добавить что-либо, кроме строки.
Например, когда я пытаюсь сохранить это в своем определении политики входящих:
<set-variable name="regexGroups" value="@(Regex.Match("inputString","regex").Groups)" />
Я получаю сообщение об ошибке следующего содержания:
Ошибка в элементе ‘set-variable’ в строке X, столбец Y: тип возвращаемого выражения ‘System.Text.RegularExpressions.Групповая коллекция, System’ не разрешена.
GroupCollection
наследуется от, object
, поэтому это должно быть допустимое значение в Variables
словаре. Почему это не работает?
Если я попытаюсь явно преобразовать его в объект:
<set-variable name="regexGroups" value="@((object)Regex.Match("inputString","regex").Groups)" />
Я получаю сообщение об ошибке следующего содержания:
Ошибка в элементе ‘set-variable’ в строке X, столбец Y: тип возвращаемого выражения ‘System.’Объект’ не разрешен
Я неправильно понимаю синтаксис?
Ответ №1:
Только некоторые типы разрешены в качестве значений переменных в выражениях APIM, object не является одним из них, вот полный список того, что разрешено в качестве значения переменной на данный момент:
- Система.Логическое
- Система.SByte
- Система.Байт
- Система.UInt16
- Система.UInt32
- Система.UInt64
- System.Int16
- System.Int32
- System.Int64
- Система.Десятичный
- Система.Одиночный
- Система.Двойной
- Система.Guid
- Система.Строка
- Система.Символ
- Система.Дата-время
- Система.Временной интервал
- Система.Байт[]
- IResponse
- Jwt
- Newtonsoft.Json.Linq.JToken
Комментарии:
1. тип переменных face-palm меня сбил с толку, мне следовало внимательно перечитать документацию для Set-Variable. Спасибо!