VB 泛型 T 应用

 

.NET框架提供了System.Xml.Serialization.XmlSerializer类型,为将对象序列化为XML或将XML序列化为对象提供了很大支持

 

先定义一个InspectionType类

<Xml.Serialization.XmlRoot("TownInspectionType")> _   'TownInspectionType是root 节点,也可以是 xml 某个节点。

Public Class InspectionType
Public FirstName As String
Public LastName As String
End Class

要解析的xml 例子

<?xml version="1.0"?>
<TownInspectionType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<FirstName>John</FirstName>
<LastName>Evans</LastName>
</TownInspectionType>

OR

<TownInspectionType>
<FirstName>John</FirstName>
<LastName>Evans</LastName>
</TownInspectionType>

下面是定义好的泛型,其中xml 是需要反序列化的节点,T是Model的类型,例子中是TownInspectionType,它包括了两个字段。

 

Public Class DeSerializer(Of T)
Public Function DeserializeXML(ByVal xml As String) As T
Dim ser As New XmlSerializer(GetType(T))
Using ms As New MemoryStream(Encoding.Default.GetBytes(xml))
Using r As New StreamReader(ms)
Dim obj As T = DirectCast(ser.Deserialize(r), T)
Return obj
End Using
End Using
End Function
End Class

下面是调用:

Dim serializer = New DeSerializer(Of InspectionType)
Dim TownInspectionTypeModel As InspectionType= serializer.DeserializeXML(townInspectionTypesChildNode.InterXml)

 

这里只是给出了 反序列化单一的Model 如果xml 是:

<TownInspectionTypes>

<TownInspectionType>
<FirstName>John</FirstName>
<LastName>Evans</LastName>
</TownInspectionType>

<TownInspectionType>
<FirstName>lili</FirstName>
<LastName>denvy</LastName>
</TownInspectionType>

</TownInspectionTypes>

能否把TownInspectionType 转化成一个List(of TownInspectionType)形式呢? 欢迎抛砖!

转载于:https://www.cnblogs.com/wwzhang/p/5130767.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值