estoy serializar una clase como estaCómo excluir propiedades nulos cuando se usa XmlSerializer
public MyClass
{
public int? a { get; set; }
public int? b { get; set; }
public int? c { get; set; }
}
Todos los tipos son anulable porque quiero un mínimo de datos almacenados al serializar un objeto de este tipo. Sin embargo, cuando se serializa sólo con "a" poblada, me sale el siguiente XML
<MyClass ...>
<a>3</a>
<b xsi:nil="true" />
<c xsi:nil="true" />
</MyClass>
¿Cómo fijo esto para conseguir solamente XML para las propiedades no nulos? La salida deseada sería
<MyClass ...>
<a>3</a>
</MyClass>
quiero excluir estos valores nulos, ya que habrá varias propiedades y esto se está poniendo almacena en una base de datos (sí, eso no es mi llamada) así que desee mantener los datos no utilizados mínimo .
Si suma todo el tiempo que los desarrolladores desperdician tratando de obtener xml para ver cómo * piensan * debería verse ... tendrían una gran cantidad de horas de desarrollador. Me di por vencido hace mucho tiempo. Deberías considerar eso como una opción. – Will
@ Will, normalmente lo haría, no hay problema en absoluto, pero esto se usará miles de veces al día y toda la clase, serializada, tiene alrededor de 1000 caracteres, ¡eso es si todas las propiedades son nulas! Además, todo esto va en el DB, no es mi elección :( –
Esta es una buena pregunta, pero creo que es un duplicado de http://stackoverflow.com/questions/1296468/suppress-null-value-types-from -being-emitted-by-xmlserializer (que Marc Gravell respondió discutiendo el patrón de especificación). –