Aquí es mi clase:¿Cómo deserializar la matriz nula para anular en C#?
public class Command
{
[XmlArray(IsNullable = true)]
public List<Parameter> To { get; set; }
}
Cuando serializar un objeto de esta clase:
var s = new XmlSerializer(typeof(Command));
s.Serialize(Console.Out, new Command());
se imprime como (se omiten los espacios de nombres de cabecera xml y por defecto MS) que se espera:
<Command><To xsi:nil="true" /></Command>
Cuando tomé este xml e intenté deserializarlo, quedé trabado, porque siempre imprime "No nulo":
var t = s.Deserialize(...);
if (t.To == null)
Console.WriteLine("Null");
else
Console.WriteLine("Not null");
Cómo forzar deserializer para hacer que mi lista sea nula, si es nula en xml?
¿Es realmente tan importante para usted si usted no tiene ninguna lista o una lista vacía? –
Sí. Puedo solucionar este caso con algunas banderas, por supuesto, pero quiero saber si hay una buena solución estándar. –
Evitar objetos nulos suele ser algo bueno (menos propenso a errores, no hay necesidad de comprobar nulo en todo el código, etc.). Usar una bandera indicaría claramente qué representa exactamente ese valor nulo. – Groo