0

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.
KevthoC
  • 25
  • 4
  • Hay que analizar cual de todas las lineas de serializar tira el error. si es que factura no es nula... – gbianchi Jul 23 '19 at 01:02
  • Gracias amigo, pero como menciono poniendo un punto de ruptura puedo ver el resultado de la sentencia factura.serializar() pero inmediatamente la ejecucion salta al bloque catch – KevthoC Jul 23 '19 at 01:52
  • xmlfactura tiene un resultado? no estara dando el problema el metodo serializar? – gbianchi Jul 23 '19 at 01:53
  • justamente eso no entiendo, el metodo retorna el valor esperado (string xml) pero en la asignacion a la variable xmlFactura da el error – KevthoC Jul 23 '19 at 01:59
  • Si ese es el caso, necesitariamos alguna forma de probar que realmente ahi no ocurre ningun error. mira [mcve]. – gbianchi Jul 23 '19 at 02:02

0 Answers0