Функции Azure: универсальный тип в качестве входного параметра
Я ищу идеальный подход для использования лазурной функции для обработки входного параметра универсального типа. Например:
[FunctionName(nameof(SendToQueueActivityFunction))]
public async Task SendToQueueActivity<T>([ActivityTrigger] SendToQueueRequest<T> sendToQueueRequest)
По сути, SendToQueueActivity должен иметь возможность отправлять любой объект типа T.
Приведенный выше код не работает. Если привязка функции не поддерживает универсальные шаблоны, то каков должен быть правильный подход к тому, чтобы функция вела себя по-разному в зависимости от типов ввода. Я ищу более чистый способ реализации, чем использование «динамического» типа.
Спасибо за ваше время и вклад.
Ответы
Как видно из ссылки, предоставленной Брайаном, универсальный тип не поддерживается в функции Azure.
SDK WebJobs явно отбрасывает общие типы при поиске атрибута FunctionName:
return type.IsClass && (!type.IsAbstract || type.IsSealed) && type.IsPublic && !type.ContainsGenericParameters;
Обратитесь к исходному коду .
Справка:
- https://github.com/Azure/Azure-Functions/issues/735
- Почему функция Azure не работает с универсальными шаблонами?