Request 提供了一批具有不同签名的消息,并提供了该消息的“元数据”。所以,例子很简单:
{
"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。
不幸的是,我没有更多的想法。