2008-10-07 5 views
7

나는 다음과 같은 직렬화 방법이 있습니다XML 직렬화, 아니 공백

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 

그러나 그것은 중첩 된 요소가 들여 XML을 반환합니다. 시리얼 라이저에서 그걸 막을 수있는 방법이 있습니까? 아니면 그냥 find replace routine을 실행하여이 모든 것을 제거해야합니까?

기본적으로 내가보고 싶은 것은 :

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

답변

10

는 XmlWriter를 매개 변수를 받아들이는 직렬화 재정의를 사용합니다. 들여 쓰기 속성을 false로 설정하여 XmlWriterSettings 개체를 전달하여 XmlWriter :: Create를 사용하여 XmlWriter를 만듭니다.