ASP.NET WebAPI:基于另一个属性中的值绑定模型的属性

时间:2018-10-03 07:24:42

标签: asp.net-web-api2 model-binding imodelbinder

请求提供了一批具有不同签名的消息,并且还提供了该消息的“元数据”。因此,示例非常简单:

{
    "SomeProp": 1,
    "Messages": [{
            "Type": "SomeMessage1",
            "Body": {
                "Id": 1,
                "Action": "Delete"
            }
        },
        {
            "Type": "AnotherMessage",
            "Body": {
                "Amount": 0.001,
                "Data": "data",
                "Ok": "True"
            }
        }
    ]
}

因此,任务是绑定每个“ Messages [i] .Body”表达式。 到目前为止,我看到的唯一解决方案是解析整个请求正文字符串,尝试反序列化所有“通用”属性。然后手动进行所有操作。

我尝试创建自己的IModelBinder,然后从Messages [i] .Type中提取值,对请求进行部分反序列化,但是默认的ValuePropviders为模型及其部分返回null。

不幸的是,我没有更多的想法了。

0 个答案:

没有答案