如何根据Content-Type标头设置到达对象的反序列化类型?

时间:2015-01-13 11:09:39

标签: asp.net http serialization asp.net-web-api

如何根据Http消息的Content-Type为到达Web API服务的对象选择序列化格式?

例如,如果Content-Type为x-www-form-urlencoded,我想将到达的文本反序列化为JSON。

1 个答案:

答案 0 :(得分:0)

如果你想在你的WebApi方法中进行,那么你可以这样做。

switch(Request.Headers["Content-type"])
        {
            case "x-www-form-urlencoded":
                {
                    //Use json deserializer
                    break;
                }
            case "xyz":
                {
                    //Use xyz deserializer
                    break;
                }
            case "abc":
                {
                    //Use abc deserializer
                    break;
                }
            default:
                {
                    //Do nothing
                    break;
                }
        }

但是,如果要根据内容类型将参数反序列化为api方法,则需要使用自定义模型绑定器。 详细了解模式绑定器here