我正在尝试将一个类对象序列化为 XML,但结果最终使它翻了一番。我只将对象传递给函数一次,但在它通过序列化时会重复。调试时,我注意到我StringWriter
的CoreNewLine
字段设置为 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