将字符串参数绑定到 Azure 函数中的枚举类型
Binding a string parameter to Enum type in AzureFunction
我正在尝试将字符串路由参数绑定到枚举类型,如下所示
public static async Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = "ValidateKey/{keyType}/{key}")]HttpRequestMessage req, KeyType keyType, string key, TraceWriter log)
当我到达终点时,代码给出了以下异常。
Exception binding parameter 'req' -> Invalid cast from 'System.String' to 'MyCommon.KeyType'."
模型绑定器无法将字符串参数绑定到枚举类型。
在 MVC 或 WebAPI 应用程序中,绑定到 Enum 工作正常,但似乎 AzureFunction 不支持绑定。
无论如何要在 AzureFunction 中插入自定义 ModelBinder 以使其工作?
绑定过程有点不同,我们目前没有公开插入自定义绑定器的机制。
我打开这个问题是为了解决我们目前不支持绑定到枚举的具体问题:https://github.com/Azure/azure-webjobs-sdk-script/issues/1564
与此同时,有一些解决方法,但最直接的方法是绑定到一个字符串并将该参数解析为您的枚举,作为您函数的一部分。不理想,但一个简单的衬垫:
Enum.TryParse(keyTypeValue, out KeyType keyType);
我正在尝试将字符串路由参数绑定到枚举类型,如下所示
public static async Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = "ValidateKey/{keyType}/{key}")]HttpRequestMessage req, KeyType keyType, string key, TraceWriter log)
当我到达终点时,代码给出了以下异常。
Exception binding parameter 'req' -> Invalid cast from 'System.String' to 'MyCommon.KeyType'."
模型绑定器无法将字符串参数绑定到枚举类型。 在 MVC 或 WebAPI 应用程序中,绑定到 Enum 工作正常,但似乎 AzureFunction 不支持绑定。 无论如何要在 AzureFunction 中插入自定义 ModelBinder 以使其工作?
绑定过程有点不同,我们目前没有公开插入自定义绑定器的机制。
我打开这个问题是为了解决我们目前不支持绑定到枚举的具体问题:https://github.com/Azure/azure-webjobs-sdk-script/issues/1564
与此同时,有一些解决方法,但最直接的方法是绑定到一个字符串并将该参数解析为您的枚举,作为您函数的一部分。不理想,但一个简单的衬垫:
Enum.TryParse(keyTypeValue, out KeyType keyType);