C# Deserialize XML to object

前端 未结 2 1873
太阳男子
太阳男子 2021-01-02 10:31

Having problems deserializing some xml into an object in C#.

The error that I receive is...

xmlns=\'\'> was not expected.

The XS

2条回答
  •  旧巷少年郎
    2021-01-02 11:08

    Here's what I am using (sorry am kind of late to the party):

      Public Function Serialize(Of YourXMLClass)(ByVal obj As YourXMLClass,
                                                          Optional ByVal omitXMLDeclaration As Boolean = True,
                                                          Optional ByVal omitXMLNamespace As Boolean = True) As String
    
            Dim serializer As New XmlSerializer(obj.GetType)
            Using memStream As New MemoryStream()
                Dim settings As New XmlWriterSettings() With {
                        .Encoding = Encoding.UTF8,
                        .Indent = True,
                        .OmitXmlDeclaration = omitXMLDeclaration}
    
                Using writer As XmlWriter = XmlWriter.Create(memStream, settings)
                    Dim xns As New XmlSerializerNamespaces
                    If (omitXMLNamespace) Then xns.Add("", "")
                    serializer.Serialize(writer, obj, xns)
                End Using
    
                Return Encoding.UTF8.GetString(memStream.ToArray())
            End Using
        End Function
    
     Public Function Deserialize(Of YourXMLClass)(ByVal obj As YourXMLClass, ByVal xml As String) As YourXMLClass
            Dim result As YourXMLClass
            Dim serializer As New XmlSerializer(GetType(YourXMLClass))
    
            Using memStream As New MemoryStream()
                Dim bytes As Byte() = Encoding.UTF8.GetBytes(xml.ToArray)
                memStream.Write(bytes, 0, bytes.Count)
                memStream.Seek(0, SeekOrigin.Begin)
    
                Using reader As XmlReader = XmlReader.Create(memStream)
                    result = DirectCast(serializer.Deserialize(reader), YourXMLClass)
                End Using
    
            End Using
            Return result
        End Function
    

提交回复
热议问题