Newtonsoft.Json игнорирует NonSerialized
От: QuAzI Беларусь  
Дата: 10.10.16 13:34
Оценка:
Есть legacy код (который нельзя менять и дополнять зависимостями) который использует местами бинарную сериализацию, местами XML. В новом проекте (который наследуюет и дополняет некоторые классы от старого) нужно сделать JSON сериализацию. Почему-то Newtonsoft игнорирует аттрибут NonSerialized, в то же время добавить JsonIgnore нельзя, т.к. это потащит в старый код новые зависимости, да и вообще старый код мордовать не разрешают. Как заставить сериализатор адекватно реагировать на NonSerialized ?

Кусок старого кода:
[Serializable]
public class TrainCourse //: ISerializable
{
    [NonSerialized]
    protected PathElement element;
    /* ... */
}
Отредактировано 10.10.2016 13:35 QuAzI . Предыдущая версия .
json nonserialized
Re: Newtonsoft.Json игнорирует NonSerialized
От: Klikujiskaaan КНДР  
Дата: 10.10.16 13:57
Оценка: +1
Здравствуйте, QuAzI, Вы писали:

QAI>Есть legacy код (который нельзя менять и дополнять зависимостями) который использует местами бинарную сериализацию, местами XML. В новом проекте (который наследуюет и дополняет некоторые классы от старого) нужно сделать JSON сериализацию. Почему-то Newtonsoft игнорирует аттрибут NonSerialized, в то же время добавить JsonIgnore нельзя, т.к. это потащит в старый код новые зависимости, да и вообще старый код мордовать не разрешают. Как заставить сериализатор адекватно реагировать на NonSerialized ?


QAI>Кусок старого кода:

QAI>
QAI>[Serializable]
QAI>public class TrainCourse //: ISerializable
QAI>{
QAI>    [NonSerialized]
QAI>    protected PathElement element;
QAI>    /* ... */
QAI>}
QAI>


Как вариант "в лоб" : в новом коде сделать обертку над старым классом и уже пользоваться аттрибутами newtonsoft'a.
Как вариант "запотеть" : сделать кастмоный конвертор Custom JsonConverter
Re[2]: Newtonsoft.Json игнорирует NonSerialized
От: Sharov Россия  
Дата: 11.10.16 11:14
Оценка:
Здравствуйте, Klikujiskaaan, Вы писали:

K>Как вариант "запотеть" : сделать кастмоный конвертор Custom JsonConverter


Я бы таким путем пошел. Собственно, уже ходил -- для каких-то классов пришлось писать конвертер вручную.
Кодом людям нужно помогать!
Re[3]: Newtonsoft.Json игнорирует NonSerialized
От: Klikujiskaaan КНДР  
Дата: 11.10.16 11:57
Оценка:
Здравствуйте, Sharov, Вы писали:

S>Здравствуйте, Klikujiskaaan, Вы писали:


K>>Как вариант "запотеть" : сделать кастмоный конвертор Custom JsonConverter


S>Я бы таким путем пошел. Собственно, уже ходил -- для каких-то классов пришлось писать конвертер вручную.


Да, это самый гибкий вариант, как по мне.
Re: Newtonsoft.Json игнорирует NonSerialized
От: vorona  
Дата: 11.10.16 13:02
Оценка:
Здравствуйте, QuAzI, Вы писали:

IList<JsonProperty> DefaultContractResolver.CreateProperties


отфильтровываете не нужные свойства
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.