Json.net: сначала сериализовать члены базового классаC#

Место общения программистов C#
Anonymous
Json.net: сначала сериализовать члены базового класса

Сообщение Anonymous »

Я использую json.net для хранения сериализованного объекта, который я хотел бы, чтобы люди могли редактировать в текстовом редакторе. У меня есть базовый класс, который содержит имя объекта, а затем класс, который наследуется от него и добавляет некоторые другие свойства.

Проблема в том, что свойства записаны out так, что сначала записываются свойства производных классов, а затем afetr базового класса, поэтому я получаю:

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

{
"MySpecialFiled": 4,
"Name": "This Is My Object",
"AnotherBaseField": 8,
}
а не:

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

{
"Name": "This Is My Object",
"AnotherBaseField": 8,
"MySpecialFiled": 4,
}
Вы можете видеть, как это становится немного неприятно, когда у вас есть несколько полей в производном классе и вы хотите просмотреть/редактировать их в текстовом редакторе!< /p>

Особенно я возился с исходным кодом:

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

public static IEnumerable GetFields(Type targetType, BindingFlags bindingAttr)
и

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

public static IEnumerable
 GetProperties(Type targetType, BindingFlags bindingAttr)
в ReflectionUtils.cs, чтобы попытаться изменить порядок, чтобы свойства базового класса были первыми, но мне пока не удалось добиться успеха. Я упускаю что-то тривиальное?


Подробнее здесь: https://stackoverflow.com/questions/199 ... bers-first

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