Как частично десериализовать объект в c #, используя пространство имен System.Runtime.Serialization.Json? - PullRequest
1 голос
/ 13 марта 2012

Это может быть слишком много проблем, но у меня есть объект, который я пытаюсь десериализовать, который выглядит так:

{
"Status": { ... a status object ... }
"Data" : {... could be any one of 10 other data classes I have ... }
}

Я хочу десериализовать этот объект в класс ответа, который выглядит так:

public class Response
{
        public Status Status;

        public Stream Data;
}

Затем позже десериализовать атрибут Data в другой класс.Однако, если я сделаю тип атрибута данных потоком, я получу исключение безопасности при попытке десериализации.Аналогично, если я сделаю это строкой, десериализация просто вызывает метод toString () для объекта данных (после десериализации его) и помещает его в качестве атрибута, что бесполезно.

Есть ли способчтобы сделать что-то вроде этого?Я стараюсь избегать использования 10 разных классов, которые очень похожи на Response, но просто имеют другой тип для атрибута Data.Если есть способ, которым я могу динамически установить тип атрибута Data, который также может разрешить ситуацию.

Спасибо за любую помощь!

1 Ответ

0 голосов
/ 13 марта 2012

Я всегда использую Newtonsoft.Json.dll для решения этой проблемы.

...