Tengo una clase con un int nullable? datatype configurado para serializar como un elemento xml. ¿Hay alguna forma de configurarlo para que el serializador xml no serialice el elemento si el valor es nulo?Serializar un nullable int
He intentado agregar el atributo [System.Xml.Serialization.XmlElement (IsNullable = false)], pero obtengo una excepción de serialización en tiempo de ejecución que indica que hubo un error que refleja el tipo, porque "IsNullable puede no ser establece en 'falso' para un tipo Nullable. Considere usar el tipo 'System.Int32' o eliminar la propiedad IsNullable del atributo XmlElement. "
[Serializable]
[System.Xml.Serialization.XmlRoot("Score", Namespace = "http://mycomp.com/test/score/v1")]
public class Score
{
private int? iID_m;
...
/// <summary>
///
/// </summary>
public int? ID
{
get
{
return iID_m;
}
set
{
iID_m = value;
}
}
...
}
La clase por encima de serializará a:
<Score xmlns="http://mycomp.com/test/score/v1">
<ID xsi:nil="true" />
</Score>
Pero para los ID que son nulos no quiero que el elemento de identificación en todo, principalmente porque cuando se utiliza OPENXML en MSSQL, devuelve una 0 en lugar de nulo para un elemento que se parece a
XmlSerializer también es compatible con el patrón [Foo} especificado. –
Página relevante aquí: http://msdn.microsoft.com/en-us/library/53b8022e%28VS.71%29.aspx – cbp
¿Alguna forma de utilizar ShouldSerialize con propiedades autogeneradas? es decir, sin variable local. –
Jay