Учитывая объектный график, состоящий из подкласса типов, которые, как мы можем сериализовать этот объект на JSON, игнориC#

Место общения программистов C#
Anonymous
 Учитывая объектный график, состоящий из подкласса типов, которые, как мы можем сериализовать этот объект на JSON, игнори

Сообщение Anonymous »

, учитывая график объекта C#, состоящий из подклассов типов, которые мы не можем изменить напрямую, какова лучшая стратегия для сериализации этого объекта на JSON в .net 4.6.2, игнорируя некоторые члены некоторых классов? < /p>
Вот конкретный пример графа объекта: < /p>

Код: Выделить всё

public class SomeBaseClass
{
public int DontSerialize { get; set; }
}

public class SomeOtherBaseClass
{
public int DontSerialize { get; set; }
}

public class YetAnotherBaseClass
{
public int DontSerialize { get; set; }
}

public class SomeDerivedClass : SomeBaseClass
{
public List SomeOtherDerivedCollection { get; set; }
public YetAnotherDerivedClass YetAnotherDerivedClass { get; set; }
}

public class SomeOtherDerivedClass : SomeOtherBaseClass { }

public class YetAnotherDerivedClass : YetAnotherBaseClass { }

//serialize this
public class ObjectGraph
{
public List SomeDerivedCollection { get; set; }
}
Первое, что мы попробовали, - это пометить производные типы и их контейнер с помощью сериализуемого и участников, которых мы хотим игнорировать с помощью jsonignore на типе метаданных и связали Метадататип для полученного типа с использованием атрибута MetAdatatype . По -видимому, сериализатор JSON не обнаружил и не чтил эти атрибуты на полученных классах. на том, как это параметр типа и вариации этой темы. В зависимости от того, как я реализую метод writejson и метод Canconvert I либо получаю переполнение стека, либо пропускаю некоторые элементы на графике.
i В.В. также попытался разработать пользовательский атрибут для тега каждого производного типа, указывающего, какие члены не будут сериализовать с одинаковыми результатами: пропущенные узлы или стек -эвер. Любой сортировка или метод сериализации из writejson применяет тот же набор jsonConverter s к настоящему объекту, что приводит к циклу.
Я даже пытался добавить и и удаление current jsonConverter , чтобы избежать рекурсии без успеха. стратегия?

Подробнее здесь: https://stackoverflow.com/questions/794 ... we-seriali

Вернуться в «C#»