¿Existe un atributo para omitir matrices vacías en la serialización xml de C#? Esto aumentaría la legibilidad humana de la salida xml.¿Existe un atributo para omitir matrices vacías en la serialización xml de C#?
8
A
Respuesta
17
Bueno, tal vez podría agregar un método ShouldSerializeFoo()
:
using System;
using System.ComponentModel;
using System.Xml.Serialization;
[Serializable]
public class MyEntity
{
public string Key { get; set; }
public string[] Items { get; set; }
[EditorBrowsable(EditorBrowsableState.Never), Browsable(false)]
public bool ShouldSerializeItems()
{
return Items != null && Items.Length > 0;
}
}
static class Program
{
static void Main()
{
MyEntity obj = new MyEntity { Key = "abc", Items = new string[0] };
XmlSerializer ser = new XmlSerializer(typeof(MyEntity));
ser.Serialize(Console.Out, obj);
}
}
Se reconoce el Patten ShouldSerialize{name}
, y el método se llama para ver si se debe incluir el establecimiento con la serialización. También hay un patrón alternativo {name}Specified
que también le permite detectar cosas cuando deserializa (a través del colocador):
[EditorBrowsable(EditorBrowsableState.Never), Browsable(false)]
[XmlIgnore]
public bool ItemsSpecified
{
get { return Items != null && Items.Length > 0; }
set { } // could set the default array here if we want
}
Cuestiones relacionadas
- 1. xmlns = vacías "" después de la serialización XML
- 2. ¿Puede Newtonsoft Json.NET omitir la serialización de listas vacías?
- 3. Serialización XML en C#
- 4. Xml Serialización en C#
- 5. Cómo agregar atributos para la serialización de XML de C#
- 6. Serialización de XML de la matriz C#
- 7. ¿Cómo agrego un atributo a un elemento XmlArray (Serialización XML)?
- 8. Cómo probar si existe un atributo en algún XML
- 9. Uso de StringWriter para la serialización XML
- 10. Reemplazo para Serialización XML
- 11. Serialización XML y valor nulo - C#
- 12. serialización XML de una colección en C#
- 13. XML gama de serialización en C#
- 14. C++ Serialización Limpiar XML Similar a XSTREAM
- 15. atributos obligatorios en la serialización XML
- 16. C# serialización XML y deserialización
- 17. serialización XML de DataContract y atributos XML
- 18. Filtrado matrices vacías de matriz de matrices en Scala
- 19. cómo eliminar las etiquetas vacías en la entrada xml
- 20. Json.NET: matrices de serialización/deserialización
- 21. Cambiar nombre XmlElement para la serialización XML
- 22. .Net Serialización XML basada en un XSD?
- 23. serialización XML de la lista
- 24. serialización XML + espacios de nombres (C#)
- 25. PHP: compruebe si existe un nodo XML con el atributo
- 26. Optimización de la serialización binaria para matrices genéricas multidimensionales
- 27. serialización XML de enumeraciones
- 28. Herramientas para depurar/verificar Serialización XML
- 29. C# XML Serializer no almacenará un atributo
- 30. Permitir nombre de nodo duplicado en serialización XML usando C#