質問

次のシリアル化方法があります:

    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を返します。シリアライザーでそれを停止する方法はありますか、それともすべてを取り除くために検索置換ルーチンを実行する必要がありますか?

本質的に、私が見たいのは:

<root><child1>data</child1><child2>data</child2></root>
役に立ちましたか?

解決

XmlWriterパラメーターを受け入れるSerializeオーバーライドを使用します。 XmlWriter :: Createを使用してXmlWriterを作成し、Indentプロパティをfalseに設定してXmlWriterSettingsオブジェクトを渡します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top