Azure関数:入力パラメーターとしてのジェネリック型
Dec 02 2020
ジェネリック型の入力パラメーターを処理する紺碧の関数を持つための理想的なアプローチを探しています。例:
[FunctionName(nameof(SendToQueueActivityFunction))]
public async Task SendToQueueActivity<T>([ActivityTrigger] SendToQueueRequest<T> sendToQueueRequest)
基本的に、「SendToQueueActivity」はタイプTの任意のオブジェクトを送信できる必要があります。
上記のコードは機能しません。関数バインディングがジェネリックスをサポートしていない場合、入力タイプに基づいて関数の動作を変えるための正しいアプローチは何でしょうか。「動的」タイプを使用するようなものよりもクリーンな実装方法を探しています。
あなたの時間と入力をありがとう。
回答
DorisLv Dec 02 2020 at 09:54
リンクブライアンの提供からわかるように、ジェネリック型はAzureFunctionではサポートされていません。
WebJobs SDKは、FunctionName属性を検索するときに、ジェネリック型を明示的に破棄します。
return type.IsClass && (!type.IsAbstract || type.IsSealed) && type.IsPublic && !type.ContainsGenericParameters;
ソースコードを参照してください。
参照:
- https://github.com/Azure/Azure-Functions/issues/735
- Azure関数がジェネリックスで機能しないのはなぜですか?