none
Se tarda mucho serializacion (VB.NET), clase generada con la herramienta de definicion de esquema XSD.exe

    Debate general

  • Buenas tardes,

    Me gustaria que me orientaran, ya que no cuento con mucha experiencia en VB.NET, estoy utilizando el 2012 el punto es el siguiente:

    Estoy generando una clase con XSD.exe de este archivo: "cfdv33.xsd" el cual contiene otras definiciones en dos archivos mas (xsd) y la clase que se genera pesa 9.11 MB, el problema viene cuando serializo para formar un XML, se tarda asta 5 min contra menos de 2 segundos haciendo lo mismo con otra clase, no se si me estoy dando a enteder, expongo el codigo que estoy utilizado:

    'La clase "Comprobante" pesa 41 KB y

    'La clase ComprobanteV33 pesa 9.11 MB

    'Ambas clases las genero con la herramienta XSD

            Dim Resultado As Boolean = False
            Dim elComprobante = entiFactura

            Dim fileXML = System.IO.Path.GetTempFileName()

            If IO.File.Exists(fileXML) = True Then IO.File.Delete(fileXML)

            Dim xmlTextW As New Xml.XmlTextWriter(fileXML, Encoding.UTF8)
            Dim nameSpaze As New Xml.Serialization.XmlSerializerNamespaces

            nameSpaze.Add("cfdi", "http://www.sat.gob.mx/cfd/3")
            nameSpaze.Add("xsi", "http://www.w3.org/2001/XMLSchema-instance")

            Dim Serialize
            If laVersion = "ver32" Then
                Serialize = New Xml.Serialization.XmlSerializer(GetType(Comprobante))    'Por aqui se tarda menos de 2 seg
            Else
                Serialize = New Xml.Serialization.XmlSerializer(GetType(ComprobanteV33))    'Y por aca se tardar asta 5 min
            End If

            Serialize.Serialize(xmlTextW, elComprobante, nameSpaze)
            xmlTextW.Close()

    Cualquier ayuda o comentario se los agradezco de antemano.

    jueves, 9 de marzo de 2017 20:04

Todas las respuestas

  • Tengo exactamente el mismo problema en C# pero no encuentro informacion al respecto por ningun lado, te agradeceria si pudiseses ayudarme cuando encuentres la solucion, de igual manera si la encuentro la publico aqui mismo. Gracias.
    viernes, 21 de abril de 2017 23:58
  • Encontrarían alguna respuesta al detalle del tiempo

    Gracias de antemano =)

    viernes, 5 de mayo de 2017 22:36
  • Aun no, he encontrado nada, pero ahora que ya termine esa parte del punto me di cuenta que solo se tarda la primera vez que serializo, posteriormente serializa en menos de 1 seg.

    Por lo pronto pienso que al iniciar el sistema mandar en un segundo hilo la serializacion para cuando en realidad se ocupe no se tarde, no es muy fina esta idea pero mientras no tenga algo mejor es lo que voy a usar.

    sábado, 6 de mayo de 2017 14:20
  • En este momento tengo el mismo problema, y el problema que veo es que la clase que se genera con el cfd33 pesa 15 mb por todos los catálogos que se agregaron.

    Sigo buscando, si tienes alguna solución para no serializar los catálogos

    jueves, 25 de mayo de 2017 5:15
  • He dejado de serializar el catalogo de productos y unidades de medias, esos catálogos los metí a tablas y al momento de capturar valido sobre esas tablas, no impidiendo la captura, esto más que nada por si el SAT decide ir metiendo nuevas claves no tengo que actualizar el sistema, solo actualizo las tablas y eso si no deseo que el sistema me advierta que ese código no existe y como los PACs ya tendrían esa clave en sus catalogo podría timbrar sin ningún problema

    Solo modifica la clase y no uses los catálogos, tratalos como strings, de momento deje de usar esos 2, los otros pienso que no porque si hubiera algún nuevo valor o código del catalogo muy probablemente seria otra versión posterior del CFDI.

    jueves, 25 de mayo de 2017 16:34
  • Cuando se utiliza la herramienta XSD para generar las clases, ayudándote de los catálogos, no hay una opción para que no los generé en las clases???
    sábado, 17 de junio de 2017 1:48
  • Alguna Idea? 
    Yo tengo el mismo problema, ya intente separar los catálogos Kilométricos del SAT por Modulos y ni ASí

    [Hacer mas; Haciendo menos]

    martes, 11 de julio de 2017 22:18
  • Saludos, encontré que quitando el catalogo de productos, unidades y sobre todo codigos postales trabaja rapido
    viernes, 11 de agosto de 2017 20:53
  • Solo los quitaste así tal cual o realiazaste alguna otra acción? yo si los quito me falla la aplicación...
    martes, 12 de diciembre de 2017 21:57
  • ¿Cómo hiciste para quitar los catálogos?

    mbalderas

    viernes, 2 de noviembre de 2018 3:15