Fonctions Azure: type générique comme paramètre d'entrée

Dec 02 2020

Je recherche une approche idéale pour avoir une fonction azure pour gérer le paramètre d'entrée de type générique. Par exemple:

    [FunctionName(nameof(SendToQueueActivityFunction))]
    public async Task SendToQueueActivity<T>([ActivityTrigger] SendToQueueRequest<T> sendToQueueRequest)

Fondamentalement, "SendToQueueActivity" devrait pouvoir envoyer n'importe quel objet de type T.

Le code ci-dessus ne fonctionne pas. Si la liaison de fonction ne prend pas en charge les génériques, quelle devrait être la bonne approche pour que la fonction se comporte différemment en fonction des types d'entrée. Je recherche un mode de mise en œuvre plus propre que quelque chose comme l'utilisation du type "dynamique".

Merci pour votre temps et vos contributions.

Réponses

DorisLv Dec 02 2020 at 09:54

Comme nous pouvons le voir à partir de la fourniture de Link Bryan, le type générique n'est pas pris en charge dans Azure Function.

WebJobs SDK rejette explicitement les types génériques lors de la recherche de l'attribut FunctionName:

return type.IsClass
   && (!type.IsAbstract || type.IsSealed)
   && type.IsPublic
   && !type.ContainsGenericParameters;

Reportez-vous au code source .

Référence:

  1. https://github.com/Azure/Azure-Functions/issues/735
  2. Pourquoi la fonction Azure ne fonctionne pas avec les génériques?