【发布时间】:2013-12-12 16:51:18
【问题描述】:
我调用了返回大量 XML 数据(大约 2mb)的第三方 Web 服务,并且我想以比正常方式更可控的方式将其反序列化为对象。这是xml:
<vehicle>
<vehicleManufacturer>
<type>1</type>
<name>A Make</name>
</vehicleManufacturer>
...
我知道我可以执行以下代码来控制哪些元素被序列化为哪些属性,在这种情况下,Car Make 对象包含两个属性,类型和名称。
<System.Xml.Serialization.XmlElement("vehicleManufacturer")> _
Public Property Make() As CarMake
但如果可能的话,我想做的是将名称字段反序列化到 Make 属性中,或者甚至只是将整个元素及其内容序列化为文本。
<System.Xml.Serialization.XmlElement("vehicleManufacturer")> _
Public Property Make() As String
这是一个非常简化的示例,所以如果有任何资源可以帮助我解决这个问题,那就太好了。
另一个例子:
<vehicle>
<warrantyDetail>
<warrantyBasicInformation buildStartdate="09/07/2013" warrantyStartDate="31/07/2013"/>
</warrantyDetail>
</vehicle>
我想从warrantyBasicInformation 中获取属性,而不必构建保修详细信息和warrantyBasicInformation 对象。
请注意,这种东西通常是从 WSDL 生成的,但是,我不会得到一个,我没有 XSD,而且trying to generate 一个失败了。我也知道我可以实现 ISerializable 并使用 xml 阅读器或 linq,但同样,这可能会变成大量代码并且可能难以维护。
【问题讨论】:
标签: .net xml vb.net serialization