Funções do Azure: tipo genérico como parâmetro de entrada
Estou procurando uma abordagem ideal para ter uma função azure para lidar com o parâmetro de entrada de tipo genérico. Por ex:
[FunctionName(nameof(SendToQueueActivityFunction))]
public async Task SendToQueueActivity<T>([ActivityTrigger] SendToQueueRequest<T> sendToQueueRequest)
Basicamente, "SendToQueueActivity" deve ser capaz de enviar qualquer objeto do tipo T.
O código acima não funciona. Se a vinculação de função não suportar genéricos, qual deve ser a abordagem certa para que a função se comporte de maneira diferente com base nos tipos de entrada. Estou procurando uma maneira mais limpa de implementação do que algo como usar o tipo "dinâmico".
Obrigado pelo seu tempo e contribuições.
Respostas
Como podemos ver no link que Bryan fornece, o tipo genérico não tem suporte no Azure Function.
O SDK do WebJobs descarta explicitamente os tipos genéricos ao pesquisar o atributo FunctionName:
return type.IsClass && (!type.IsAbstract || type.IsSealed) && type.IsPublic && !type.ContainsGenericParameters;
Consulte o código-fonte .
Referência:
- https://github.com/Azure/Azure-Functions/issues/735
- Por que a função Azure não funciona com Genéricos?