2008-10-07 24 views
7

tengo el siguiente método de serialización:serialización XML, sin espacios en blanco

Private Function SerializeData(ByVal data As cData) As String 
     If data IsNot Nothing Then 
      Dim xml_stream As New MemoryStream() 
      Dim sr As StreamReader 
      Dim xs As New XmlSerializer(GetType(cData)) 
      xml_stream = New MemoryStream() 

      Try 
       xs.Serialize(xml_stream, data) 
       xml_stream.Position = 0 

       sr = New StreamReader(xml_stream) 
       Return sr.ReadToEnd() 
      Finally 
       If sr IsNot Nothing Then sr.Close() 
       xml_stream.Close() 
      End Try 

     Else 
      Return "No data" 
     End If 
    End Function 

sin embargo, devuelve el código XML los elementos anidados sangría. ¿Hay alguna manera de cerrar eso en el serializador, o simplemente tengo que ejecutar una rutina de reemplazo para deshacerme de todo?

En esencia, lo que quiero ver es:

<root><child1>data</child1><child2>data</child2></root> 

Respuesta

10

Con la corrección de Serialize que acepta un parámetro XmlWriter. Cree el XmlWriter utilizando XmlWriter :: Create, pasando un objeto XmlWriterSettings con la propiedad de Sangría establecida en falso.

Cuestiones relacionadas