0

我正在尝试将一个类对象序列化为 XML,但结果最终使它翻了一番。我只将对象传递给函数一次,但在它通过序列化时会重复。调试时,我注意到我StringWriterCoreNewLine字段设置为 Length = 2。我一直认为这是问题所在,但不知道如何改变它。关于我的序列化,我还有什么遗漏吗?

我的 XML 序列化函数

Public Shared Function ToXml(ByVal obj As Object) As String
    Try
        Dim serializer As XmlSerializer = New XmlSerializer(obj.[GetType]())

        Dim stringWrit As StringWriter = New StringWriter()
        Using writer = XmlWriter.Create(stringWrit)
            serializer.Serialize(stringWrit, obj)
            Return stringWrit.ToString()
        End Using

    Catch ex As Exception

        DumpException(ex)
        Return ex.ToString()
    End Try

End Function

我的班级对象

<Serializable>
Public Class SPFolderOver

Public _files As List(Of SPFile)

Public _folders As List(Of SPFolderOver)

Public _name As String

Public _fullPath As String

<NonSerialized>
<XmlIgnore>
Public _props As Dictionary(Of EmailProperty, String)

Public _sp As Sharepoint

Public Property SPFiles() As List(Of SPFile)
    Get
        Return _files
    End Get
    Set(ByVal value As List(Of SPFile))
        _files = value
    End Set
End Property

Public Property SPFolders() As List(Of SPFolderOver)
    Get
        Return _folders
    End Get
    Set(ByVal value As List(Of SPFolderOver))
        _folders = value
    End Set
End Property


Public Property FolderName() As String
    Get
        Return _name
    End Get
    Set(ByVal value As String)
        _name = value
    End Set
End Property

<XmlIgnore>
Public Property Properties() As Dictionary(Of EmailProperty, String)
    Get
        Return _props
    End Get
    Set(ByVal value As Dictionary(Of EmailProperty, String))
        _props = value
    End Set
End Property

Public Property Folder() As Object
    Get
        'Return _folderObj
        Return Nothing
    End Get
    Set(ByVal value As Object)
        '_folderObj = value
    End Set
End Property


Public Property FullPath() As String
    Get
        Return _fullPath
    End Get
    Set(ByVal value As String)
        _fullPath = value
    End Set
End Property


Public Property SP() As Sharepoint
    Get
        Return _sp
    End Get
    Set(ByVal value As Sharepoint)
        _sp = value
    End Set
End Property
4

1 回答 1

0

发现问题。只是将对象字段从 更改PublicPrivate

于 2018-09-06T19:45:12.343 回答