Azure Functions: Tipe umum sebagai parameter input
Saya mencari pendekatan yang ideal karena memiliki fungsi biru langit untuk menangani parameter input tipe generik. Misalnya:
[FunctionName(nameof(SendToQueueActivityFunction))]
public async Task SendToQueueActivity<T>([ActivityTrigger] SendToQueueRequest<T> sendToQueueRequest)
Pada dasarnya, "SendToQueueActivity" harus bisa mengirim objek berjenis T.
Kode di atas tidak berfungsi. Jika pengikatan fungsi tidak mendukung obat generik, apa yang seharusnya menjadi pendekatan yang tepat agar fungsi berperilaku berbeda berdasarkan jenis masukan. Saya mencari cara implementasi yang lebih bersih daripada sesuatu seperti menggunakan tipe "dinamis".
Terima kasih atas waktu dan masukannya.
Jawaban
Seperti yang dapat kita lihat dari Link yang Bryan sediakan, tipe generik tidak mendukung Azure Function.
SDK WebJobs secara eksplisit membuang tipe generik saat mencari atribut FunctionName:
return type.IsClass && (!type.IsAbstract || type.IsSealed) && type.IsPublic && !type.ContainsGenericParameters;
Lihat kode sumber .
Referensi:
- https://github.com/Azure/Azure-Functions/issues/735
- Mengapa fungsi Azure tidak berfungsi dengan Generik?