我有一个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>
答案 0 :(得分:0)
回答了我自己的问题。我傻了。在序列化对象之前,我的代码中的其他位置意外重置了枚举成员的值。所以它与序列化过程无关!