Este formato es basado en XML y es recomendado cuando el objeto será des-serializado en diferentes plataformas o cuando va a ser trasportado por la red siempre y cuando no se requiera serializar miembros privados. Este formato brinda una gran interoperabilidad y es muy fácil de comprender.
'Persona.vb Public Class Persona Public Nombre As String Public Apellido As String Public Edad As Integer Public Sub New() MyBase.New() End Sub Public Sub New(ByVal _nombre As String, ByVal _apellido As String, ByVal _edad As String) Nombre = _nombre Apellido = _apellido Edad = _edad End Sub End Class |
'Serialize.vb Imports System.IO Imports System.Runtime.Serialization Imports System.Xml.Serialization
Module Module1 Sub Main() Dim Manuel As New Persona("Manuel", "Salas", 30) Dim archivo As New FileStream("c:\temp\f_persona.xml", FileMode.Create) Dim formateador As New XmlSerializer(GetType(Persona)) formateador.Serialize(archivo, Manuel) archivo.Close() End Sub End Module |
Como podemos observar es muy similar a las serializaciones anteriores, básicamente seguimos los mismos tres pasos:
- Instanciamos un FileStream para almacenar el objeto serializado.
- Instanciamos un Formateador para serializar el objeto.
- Serializamos el objeto llamando al método serialize del formateador.
Para des-serializar un objeto seguimos los mismos pasos de manera inversa:
- Instanciamos un FileStream para leer el objeto serializado.
- Instanciamos un Formateador para des-serializar el objeto.
- Des-serializamos el objeto llamando al método deserialize del formateador.
Veamos como des-serializar el objeto que serializamos en el fragmento de código anterior:
'Persona.vb Public Class Persona Public Nombre As String Public Apellido As String Public Edad As Integer Public Sub New() MyBase.New() End Sub Public Sub New(ByVal _nombre As String, ByVal _apellido As String, ByVal _edad As String) Nombre = _nombre Apellido = _apellido Edad = _edad End Sub End Class |
'Deserialize.vb
Imports System.IO Imports System.Runtime.Serialization Imports System.Xml.Serialization
Module Module1 Sub Main() Dim Manuel As New Persona Dim archivo As New FileStream("c:\temp\f_persona.xml", FileMode.Open) Dim formateador As New XmlSerializer(GetType(Persona)) Manuel = formateador.Deserialize(archivo) archivo.Close() Console.WriteLine("Nombre ={0}, Apellido = {1}, Edad = {2}", Manuel.Nombre, Manuel.Apellido, Manuel.Edad) Console.ReadKey() End Sub End Module |
4 comentarios:
HOla Alejandro yo lo que necesito hacer es esto mira que esa etiqueta ponga los puntos enmedio de la palabra cfdi y Addenda para quedar asi , de ahi los campos que le quiera hacer.
HOla Alejandro yo lo que necesito hacer es esto mira que esa etiqueta ponga los puntos enmedio de la palabra cfdi y Addenda para quedar asi , de ahi los campos que le quiera hacer.
Hola amigo no consigo crear esta etiqueta de la siguiente forma, todo lo que hago es crear un xml serializado pero como podria hacer le para serializar de esta forma observa:
28888
10
500000
5221.62
00.00
Ya que este esta valdiado por sat y lo demas, como podria hacerse eso?
Saludos....
Hola amigo no consigo crear esta etiqueta de la siguiente forma, todo lo que hago es crear un xml serializado pero como podria hacer le para serializar de esta forma observa:
28888
10
500000
5221.62
00.00
Ya que este esta valdiado por sat y lo demas, como podria hacerse eso?
Saludos....
Publicar un comentario