Цель состоит в десериализации ответа JSON на класс ответа оболочки, содержащий динамическую часть c, с использованием новой библиотеки System.Text. Json из NET Core 3 .
То есть
{
"fixedProperty": "Hello",
"dynamicProperty": {
"attributeOne": "One",
"attributeTwo": "Two",
}
}
до
public class MyResponseClass
{
public string FixedProperty { get; set; }
public dynamic DynamicProperty { get; set; }
}
// Where the dynamic property is one of the classes.
// (MyDataClassOne in the particular JSON example above)
public class MyDataClassOne
{
public string AttributeOne { get; set; }
public string AttributeTwo { get; set; }
}
public class MyDataClassTwo
{
public string AttributeThree { get; set; }
public string AttributeFour { get; set; }
}
...
Тип свойства Dynami c в ответе всегда известен заранее (зависит от запроса), и является одним из, скажем, трех разных классов.
Не могу найти чистый способ сделать это, за исключением того, что нет одного класса-оболочки со свойством динамического c, но несколько различных классов ответов для каждого из случаев (что, очевидно, работает нормально, но не является желаемым решением).
РЕДАКТИРОВАТЬ: Решением было использование обобщенного c.