Я пытаюсь сериализовать объект класса в XML, но в результате получается его удвоение. Я передаю объект в функцию только один раз, но дублирую к тому времени, когда он проходит сериализацию. При отладке я заметил, что в моем StringWriter
поле CoreNewLine
установлено на Длина = 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