Существует часть строки, которую я хотел бы десериализовать с помощью DataContractJsonSerializer
. В строке JSON есть член, который иногда может быть объектом или строкой другого времени. Как так:DataContractJsonSerializer выбрасывает InvalidCastException для членов различного типа
{ a: 1, b: 2, c: "c" }
или
{ a: 1, b: 2, c: {c1: 3, c2: 4} }
Я знаю структуру объекта во втором случае (давайте назовем этот класс Inner
), но как можно DataContractJsonSerializer
преобразовать объект двух возможных типов?
Я попытался сделать явный и неявный оператор литья, чтобы преобразовать из string
в Inner
, но он не попадает. InvalidCastException
продолжает бросать.