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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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