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 を返します。
残念ながら、これ以上のアイデアはありません。