将字符串参数绑定到 Azure Function 中的枚举类型

5
我正在尝试将字符串路由参数绑定到枚举类型,如下所示。
public static async Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = "ValidateKey/{keyType}/{key}")]HttpRequestMessage req, KeyType keyType, string key, TraceWriter log)

当我调用端点时,代码给我以下异常:
“绑定参数'req'时出现异常->从'System.String'到'MyCommon.KeyType'的转换无效。”
模型绑定程序无法将字符串参数绑定到枚举类型。 在MVC或WebAPI应用程序中,绑定到枚举工作正常,但似乎在AzureFunction中不受支持。 是否有任何方法可以在AzureFunction中插入自定义ModelBinder以使其工作?
1个回答

4

绑定过程有所不同,我们目前没有公开一种机制来插入自定义的绑定器。

我打开了这个问题来解决一个具体的问题,即我们目前不支持绑定到枚举:https://github.com/Azure/azure-webjobs-sdk-script/issues/1564

同时,有几种解决方法,但最简单的方法是将其绑定到一个字符串,并将该参数作为函数的一部分解析为您的枚举。虽然不理想,但只需要一行:

Enum.TryParse(keyTypeValue, out KeyType keyType);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接