ASP.NET WebAPI: привязать свойство модели на основе значения в другом свойстве - PullRequest
0 голосов
/ 03 октября 2018

Запрос предоставляет пакет сообщений с другой подписью, а также предоставляет «метаданные» этого сообщения.Итак, пример довольно прост:

{
    "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 по умолчанию возвращают нуль для модели и ее частей..

К сожалению, у меня больше нет идей.

...