Foros del Web » Programando para Internet » ASPX (.net) »

Serialización y caracteres de control

Estas en el tema de Serialización y caracteres de control en el foro de ASPX (.net) en Foros del Web. Hola a todos: Mi problema es el siguiente: Tengo una clase que se encarga de almacenar una serie de información en formato XML en una ...
  #1 (permalink)  
Antiguo 16/05/2006, 03:46
 
Fecha de Ingreso: julio-2003
Mensajes: 132
Antigüedad: 20 años, 9 meses
Puntos: 0
Mensaje Serialización y caracteres de control

Hola a todos:
Mi problema es el siguiente:
Tengo una clase que se encarga de almacenar una serie de información en formato XML en una base de datos.
Bueno el tema es que esa clase tiene un método que recibe un parametro que es el objeto a serializar.
Por ejemplo recibo por parametro un objeto de la clase "Persona" y a través de esta clase "manager" la serializo a XML y se lo paso a otra ya en texto plano para que lo almacene en la base de datos.
Hasta ahi todo ok.
El problema viene cuando alguna propiedad tiene saltos de linea, que se almacenan con el mismo texto de la propiedad.

El método que serializa los objetos es :

Código:
Public Sub SetSetting(ByVal pobjObjectSetting As GenericSetting)
        
    If Not pobjObjectSetting Is Nothing Then

            Dim objStringBuilder As New System.Text.StringBuilder
            Dim objStringWriter As New System.IO.StringWriter(objStringBuilder)
            Dim x As New Xml.Serialization.XmlSerializer(pobjObjectSetting.GetType)
            x.Serialize(objStringWriter, pobjObjectSetting)
            Me.SaveSetting(pobjObjectSetting.SettingName, objStringWriter.ToString)

        End If
    End Sub
Entonces al realizar el proceso inverso me aparece un texto (en un textBox) que ha perdido los saltos de linea

¿Saben que me puede estar ocurriendo?
Bueno muchas gracias de antemano.

Un saludo
  #2 (permalink)  
Antiguo 16/05/2006, 08:24
 
Fecha de Ingreso: abril-2005
Mensajes: 29
Antigüedad: 19 años
Puntos: 0
Hola:

En un trabajo a la medida que hice (un CMS) necesité algo parecido y lo resolví de la manera siguiente:

La idea más o menos es tener dentro de una variable el texto plano del xml y luego codificarlo para guardarlo en la BD; para leer de la BD, realizo el proceso inverso, te explico ahora cómo lo hice.

Es necesario usar el namespace System.Xml

Para codificar lo haces de la manera:
...
...
string XmlString = XmlConvert.EncodeName(cadena con el XML sin codificar);
...
...

y para decodificar:

string XmlString = XmlConvert.DecodeName(cadena con el XML codificado);

Prueba si te sirve, y si necesitas ayuda no dudes en escribir.

Atentamente.

Alex Francis
__________________
www.softimus.net
  #3 (permalink)  
Antiguo 17/05/2006, 01:57
 
Fecha de Ingreso: julio-2003
Mensajes: 132
Antigüedad: 20 años, 9 meses
Puntos: 0
Solucion

Hola a todos:
Gracias por sus respuestas.
El problema era que al control que asignaba el texto con los caracteres de salto de linea, tab, etc... era un textbox. Cambiandolo por un RichTextBox asunto concluido!!
Gracias de nuevo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:54.