.net 问题序列化

.net 问题序列化,.net,xml,vb.net,serialization,.net,Xml,Vb.net,Serialization,我遇到以下异常:当我尝试序列化我的类时,出现了一个反映类型“valoradorch.estruturas.dispoHotel”的错误。 我的代码是: Public Function getXMLdeObjecto(ByVal obj As Object) Dim ser As New XmlSerializer(obj.GetType()) Dim sb As New System.Text.StringBuilder() Dim writer

我遇到以下异常:当我尝试序列化我的类时,出现了一个反映类型“valoradorch.estruturas.dispoHotel”的错误。

我的代码是:

 Public Function getXMLdeObjecto(ByVal obj As Object)
        Dim ser As New XmlSerializer(obj.GetType())
        Dim sb As New System.Text.StringBuilder()
        Dim writer As New System.IO.StringWriter(sb)
        ser.Serialize(writer, obj)
        Return sb.ToString()
    End Function
我尝试序列化的类:

Public Class estruturas

        <Serializable()> _

        Public Class PedidoDispo

            Private myLocalidade As String
            Public mydataInicio As Date
            Public mydataFim As Date
            Public mynumQuartos As Integer
            Public mynumPessoas As Integer
            Public myordenar As String
            Public myidioma As String

            Public Property Localidade() As String
                Get
                    Return myLocalidade
                End Get
                Set(ByVal Value As String)
                    myLocalidade = Value.Replace(" ", "_")
                End Set
            End Property

            Public Property dataInicio() As String
                Get
                    Return mydataInicio
                End Get
                Set(ByVal Value As String)
                    mydataInicio = Value.Replace(" ", "_")
                End Set
            End Property

            Public Property dataFim() As String
                Get
                    Return mydataFim
                End Get
                Set(ByVal Value As String)
                    mydataFim = Value.Replace(" ", "_")
                End Set
            End Property

            Public Property numQuartos() As String
                Get
                    Return mynumQuartos
                End Get
                Set(ByVal Value As String)
                    mynumQuartos = Value.Replace(" ", "_")
                End Set
            End Property

            Public Property numPessoas() As String
                Get
                    Return mynumPessoas
                End Get
                Set(ByVal Value As String)
                    mynumPessoas = Value.Replace(" ", "_")
                End Set
            End Property

            Public Property ordenar() As String
                Get
                    Return myordenar
                End Get
                Set(ByVal Value As String)
                    myordenar = Value.Replace(" ", "_")
                End Set
            End Property

            Public Property idioma() As String
                Get
                    Return myidioma
                End Get
                Set(ByVal Value As String)
                    myidioma = Value.Replace(" ", "_")
                End Set
            End Property



            Sub New(ByVal localidade As String, ByVal dataInicio As String, ByVal dataFim As String, ByVal numQuartos As Integer, ByVal numPessoas As Integer)
                Me.Localidade = localidade
                Me.dataInicio = DateTime.Parse(dataInicio)
                Me.dataFim = DateTime.Parse(dataFim)
                Me.numQuartos = numQuartos
                Me.numPessoas = numPessoas
                ordenar = "Popularity-desc"
                idioma = "PT"
            End Sub

        End Class


        <Serializable()> _
         Public Class dispoHotel

            Private myPedido As PedidoDispo
            Private mylocalidade As String
            Private mylistaHotel As List(Of hotel)

            Public ReadOnly Property qtdHotels() As String
                Get
                    Return mylistaHotel.Count
                End Get
            End Property

            Public Property listaHotel() As List(Of hotel)
                Get
                    Return mylistaHotel
                End Get
                Set(ByVal Value As List(Of hotel))
                    mylistaHotel = Value
                End Set
            End Property

            Public Property pedido() As PedidoDispo
                Get
                    Return myPedido
                End Get
                Set(ByVal Value As PedidoDispo)
                    myPedido = Value
                End Set
            End Property

            Sub New(ByVal pedido As PedidoDispo)
                Me.pedido = pedido
                listaHotel = New List(Of hotel)
            End Sub

            Sub New()
                listaHotel = New List(Of hotel)
            End Sub

        End Class


        Public Structure hotel

            Dim id As String
            Dim nome As String
            Dim categoria As Integer
            Dim morada As String
            Dim caracteristicas As List(Of String)
            Dim distancia As String
            Dim foto As String
            Dim melhorPreco As String
            Dim precos As Hashtable


        End Structure

    End Class
Public-Class-estruturas
_
公共级PedidoDispo
私有myLocalidade作为字符串
公共mydataInicio截止日期
公共mydataFim截止日期
作为整数的公共mynumQuartos
作为整数的公共mynumPessoas
公共myordenar作为字符串
作为字符串的公共mya
公共属性Localidade()作为字符串
得到
返回myLocalidade
结束
设置(ByVal值作为字符串)
myLocalidade=Value.Replace(“,”_uux”)
端集
端属性
公共属性dataInicio()作为字符串
得到
返回mydataInicio
结束
设置(ByVal值作为字符串)
mydataInicio=值。替换(“,”)
端集
端属性
公共属性dataFim()作为字符串
得到
返回mydataFim
结束
设置(ByVal值作为字符串)
mydataFim=Value.Replace(“,”)
端集
端属性
公共属性numQuartos()作为字符串
得到
返回mynumQuartos
结束
设置(ByVal值作为字符串)
mynumQuartos=值。替换(“,”)
端集
端属性
公共属性numPessoas()作为字符串
得到
返回mynumPessoas
结束
设置(ByVal值作为字符串)
mynumPessoas=值。替换(“,”)
端集
端属性
公共属性ordenar()作为字符串
得到
返肌
结束
设置(ByVal值作为字符串)
myordenar=Value.Replace(“,”)
端集
端属性
公共属性a()作为字符串
得到
返回我的习惯用法
结束
设置(ByVal值作为字符串)
myidioma=Value.Replace(“,”)
端集
端属性
Sub New(ByVal Localizade作为字符串,ByVal dataInicio作为字符串,ByVal dataFim作为字符串,ByVal numQuartos作为整数,ByVal numPessoas作为整数)
Me.Localidade=Localidade
Me.dataInicio=DateTime.Parse(dataInicio)
Me.dataFim=DateTime.Parse(dataFim)
Me.numQuartos=numQuartos
Me.numPessoas=numPessoas
ordenar=“流行度描述”
成语a=“PT”
端接头
末级
_
公共舱酒店
私人myPedido作为PedidoDispo
私有mylocalidade作为字符串
(酒店)名单中的私人酒店
公共只读属性qtdHotels()作为字符串
得到
返回迈利斯塔酒店,伯爵
结束
端属性
公共财产listaHotel()作为列表(酒店)
得到
返回迈利斯塔酒店
结束
设置(ByVal值作为列表(酒店))
迈利斯塔价值酒店
端集
端属性
公共财产pedido()作为PedidoDispo
得到
返回我的佩蒂多
结束
设置(ByVal值为PedidoDispo)
myPedido=值
端集
端属性
次新版本(ByVal pedido作为PedidoDispo)
Me.pedido=pedido
listaHotel=新列表(酒店)
端接头
次新
listaHotel=新列表(酒店)
端接头
末级
公共建筑酒店
作为字符串的Dim id
作为字符串的Dim nome
将类别设置为整数
Dim morada作为字符串
Dim caracteristicas作为列表(字符串)
像弦一样的模糊距离
将foto变暗为字符串
Dim Melhorperco作为字符串
Dim precos作为哈希表
端部结构
末级

是否尝试将对象Hotel序列化?

您的dispoHotel类具有只读属性qtdHotels。尝试使用XMLIgnore属性使序列化程序跳过它,但对象Hotel是一个结构而不是一个类。。。它可能会生成错误?将XMLIgnoreAttribute应用于属性