将Generic.List(Of CustomClass)转换为XML时,枚举值未正确序列化

时间:2010-08-06 13:16:00

标签: xml vb.net serialization enums

我有一个Generic.List(Of ImportedVehicle) - ImportedVehicle是一个简单的类,如下所示。

有一个枚举属性,标记为公开。

当我使用XMLSerializer序列化为XML时,enum的值只是设置为它的默认值(NotAllocated),并不实际代表代码中设置的值。

为什么枚举值无法正确序列化的任何想法?

 <Serializable()> _
Public Class ImportedVehicle
        Public Property Driver_Name As String = ""
        Public Property Driver_AssignmentType As DriverAllocationTypeEnum = DriverAllocationTypeEnum.NotAllocated
    End Class

    <Serializable()> _
    Public Enum DriverAllocationTypeEnum
        NotAllocated = 1
        NamedDriver = 2
        PoolVehicle = 3
    End Enum

XML输出(无论设置为Driver_AssignmentType的值如何):

<?xml version="1.0" encoding="utf-16"?>
<ArrayOfImportedVehicle xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <ImportedVehicle>
    <Driver_Name>Test Name</Driver_Name>
    <Driver_AssignmentType>NotAllocated</Driver_AssignmentType>
  </ImportedVehicle>
  </<ArrayOfImportedVehicle>

1 个答案:

答案 0 :(得分:0)

回答了我自己的问题。我傻了。在序列化对象之前,我的代码中的其他位置意外重置了枚举成员的值。所以它与序列化过程无关!