Funções do Azure: tipo genérico como parâmetro de entrada

Dec 02 2020

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

DorisLv Dec 02 2020 at 09:54

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:

  1. https://github.com/Azure/Azure-Functions/issues/735
  2. Por que a função Azure não funciona com Genéricos?