У меня есть несколько классов, которые производятся из базового класса. Свойства базового класса имеют атрибут [DataMember], но свойства производного класса не имеют его. Когда я использую JsonConvert.SerializeObject() в объекте дочернего класса, я вижу только свойства в базовом классе, которые сериализуются, если я не добавлю [DataMember] к свойству производного класса. Как сделать SerializeObject() для сериализации всех свойств производного класса, в том числе свойств, определенных в базовом классе, игнорируя атрибут [DataMember]? Я хочу избежать добавления [DataMember] ко всем свойствам производного класса.JSON.Net сериализует все свойства производного класса
1
A
ответ
-1
Без какого-либо фактического кода отправленный источник вашей проблемы трудно указать. Может быть, вы могли бы просто бросить все атрибуты де/сериализации, как [DataMember()]
или [JsonProperty()]
, и дать ему еще одну попытку, так как имея
public abstract class Base
{
public abstract string BaseProp { get; }
}
public class MyBase : Base
{
public override string BaseProp { get { return "propA"; } }
public string MyBaseProp { get; set; }
}
public class My : MyBase
{
public string MyProp { get; set; }
}
А затем сериализовать данные экземпляры класса
var myBase = new MyBase { MyBaseProp = "prop1" };
Console.WriteLine(JsonConvert.SerializeObject(myBase));
var my = new My { MyBaseProp = "prop1", MyProp = "prop2" };
Console.WriteLine(JsonConvert.SerializeObject(my));
дает вам следующий вывод
{"BaseProp":"propA","MyBaseProp":"prop1"}
{"MyProp":"prop2","BaseProp":"propA","MyBaseProp":"prop1"}
Смежные вопросы
- 1. Json.net сериализует числовые свойства как строку
- 2. Индексирование производного [ElasticType] только сериализует свойства базового класса
- 3. Json.Net сериализует производный класс вместо базового класса в ApiController
- 4. Json.Net десериализует и сериализует свойства с именами, которые меняют
- 5. Json.net сериализует/десериализует производные типы?
- 6. Получить все __slots__ производного класса
- 7. Игнорировать основные свойства класса в Json.NET сериализациях
- 8. Доступ к элементам свойства производного класса
- 9. Можно ли скрыть свойства из производного класса?
- 10. JSON.NET сериализует JObject при игнорировании нулевых свойств
- 11. Динамически игнорировать свойства класса, используя json.net
- 12. Почему Json.net правильно сериализует класс, полученный из TreeNode?
- 13. Сериализовать все свойства класса в XML
- 14. XStream JavaBeanConverter не сериализует свойства
- 15. C# Reflection: Как получить свойства производного класса из базового класса
- 16. Как JSON.NET сериализует объекты при использовании EF table-per-hierarchy?
- 17. ASP.NET MVC 4 ApiController не сериализует все свойства
- 18. C# отливка производного класса
- 19. Сериализация производного класса для XML
- 20. JSON.NET игнорирует все мои свойства без атрибута JsonProperty
- 21. JSON.NET - Игнорировать свойства для сериализации
- 22. Лучшая практика для получения производного класса для реализации свойства?
- 23. присвоение базовой части производного класса
- 24. Как перечислить все свойства класса
- 25. Получить все декорированные свойства класса
- 26. Json.Net десериализации, сохраняя некоторые свойства десериализуются
- 27. WPF обращается только один экземпляр производного класса с свойства зависимостей
- 28. Сериализация/десериализация производного класса
- 29. Переместить конструктор производного класса
- 30. Как использовать отражение, чтобы получить свойства базового класса, прежде чем свойства производного класса
Нерелевантно к вопросу, Участник уже знает, как обращаться с сериализацией класса 'Derived/Base', но ищет оптимальный элегантный способ unmask члены класса 'Derived'. означает ** используя меньше '[DataMember]' над каждым 'Derived property' ** – Rzassar