将字符串参数绑定到AzureFunction中的Enum类型

时间:2017-06-02 00:03:09

标签: azure enums azure-functions custom-model-binder defaultmodelbinder

我正在尝试将字符串路由参数绑定到Enum Type,如下所示

http://example?parameter=<input-value>

当我点击端点时,代码会给我以下异常。

  

异常绑定参数&#39; req&#39; - &GT;来自&#39; System.String&#39;的无效演员表到&#39; MyCommon.KeyType&#39;。&#34;

模型绑定器无法将字符串参数绑定到Enum类型。 在MVC或WebAPI应用程序中,绑定到Enum工作正常,但似乎AzureFunction不支持绑定。 有没有在AzureFunction中插入自定义ModelBinder以使其工作?

1 个答案:

答案 0 :(得分:2)

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

我已解决此问题以解决特定问题,我们目前不支持绑定到枚举:https://github.com/Azure/azure-webjobs-sdk-script/issues/1564

与此同时,有一些解决方法,但最直接的解决方法是绑定到字符串并将该参数解析为您的函数的枚举。不理想,但只是一个简单的衬垫:

Enum.TryParse(keyTypeValue, out KeyType keyType);