NewtonSoft JSON.NET не сериализует свойства ⇐ C#
-
Anonymous
NewtonSoft JSON.NET не сериализует свойства
Пример кода:
публичный класс DerivedClassEventArgs: BaseEventArgs { общедоступное строковое имя {get; частный набор; } public bool Age { get; частный набор; } } общедоступный класс BaseEventArgs: EventArgs { #region Элементы данных [JsonProperty] bool m_bBroadcast; [JsonProperty] ДатаВремя m_date; } public void ExecuteMethod (BaseEventArgs args) { Строка cmdJson = JsonConvert.SerializeObject(args, m_oJasonSettings); } Настройки Json:
private JsonSerializerSettings m_oJasonSettings = new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.All }; JsonConvert.SerializeObject в методе Execute ведет себя по-разному в двух разных приложениях.
В одном месте cmdJson содержит значения параметров из базового и производного.
Где, как и в другом, он содержит только значения параметров из базового класса.
Если [JsonProperty] установлен для свойства в производном классе, то это работает..
Используемая версия NewtonSoft JSON.NET — 13.0.2..
Как это работает в одном месте без объявления [JsonProperty]
Пример кода:
публичный класс DerivedClassEventArgs: BaseEventArgs { общедоступное строковое имя {get; частный набор; } public bool Age { get; частный набор; } } общедоступный класс BaseEventArgs: EventArgs { #region Элементы данных [JsonProperty] bool m_bBroadcast; [JsonProperty] ДатаВремя m_date; } public void ExecuteMethod (BaseEventArgs args) { Строка cmdJson = JsonConvert.SerializeObject(args, m_oJasonSettings); } Настройки Json:
private JsonSerializerSettings m_oJasonSettings = new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.All }; JsonConvert.SerializeObject в методе Execute ведет себя по-разному в двух разных приложениях.
В одном месте cmdJson содержит значения параметров из базового и производного.
Где, как и в другом, он содержит только значения параметров из базового класса.
Если [JsonProperty] установлен для свойства в производном классе, то это работает..
Используемая версия NewtonSoft JSON.NET — 13.0.2..
Как это работает в одном месте без объявления [JsonProperty]
Мобильная версия