【问题标题】:Binding a string parameter to Enum type in AzureFunction将字符串参数绑定到 Azure 函数中的枚举类型
【发布时间】:2017-06-02 00:03:09
【问题描述】:

我正在尝试将字符串路由参数绑定到枚举类型,如下所示

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' 的无效转换。”

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    Enum.TryParse(keyTypeValue, out KeyType keyType);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-23
      • 2011-01-10
      相关资源
      最近更新 更多