Tengo un método que serializa un objeto en formato XML y lo devuleve como un string . El método es el siguiente
public string serializar()
{
XmlSerializer serializer = new XmlSerializer(typeof(FacturaSRI));
XmlWriterSettings xmlSettings = new XmlWriterSettings() { Indent = false };
var xmlnsEmpty = new XmlSerializerNamespaces();
xmlnsEmpty.Add("", "");
using (StringWriter sWriter = new Utf8StringWriter())
{
using (var xwriter = XmlWriter.Create(sWriter, xmlSettings))
{
serializer.Serialize(xwriter, this, xmlnsEmpty);//this= clase Factura con datos cargados
string xmlFactura = sWriter.ToString();
return xmlFactura;
}
}
}
Este, a su vez es llamado desde un controlador de la siguiente forma.
try
{
FacturaSRI factura = new FacturaSRI().deserializar(value);//json a objeto OK
factura.infoTributaria.claveAcceso = factura.generarClave();
string xmlFactura = factura.serializar();//linea que genera excepcion
}
catch (Exception ex)
{
return Ok(r.error(ex.Message));
}
Al ejecutar la llamada, y poner un punto de ruptura puedo verificar que el string que retorna el metodo serializar es correcto pero no entiendo porque razón siempre la ejeucion salta al catch y me da un error
Object reference not set to an instance of an object.