博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
VB 泛型 T 应用
阅读量:4678 次
发布时间:2019-06-09

本文共 1533 字,大约阅读时间需要 5 分钟。

 

.NET框架提供了,为将对象序列化为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

你可能感兴趣的文章
DevExpress下拉多选框 CheckComboboxEdit、CheckedListBoxControl
查看>>
MySQL 忘记Root密码
查看>>
WPF后台自定义文字带背景的选择状态按钮
查看>>
【转自Mgen】 .NET(C#):谈谈各种结束进程的方法
查看>>
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
查看>>
用原生javascript做的一个打地鼠的小游戏
查看>>
小米手机 - Charles无法安装证书 因为无法读取证书
查看>>
android 动态壁纸开发
查看>>
你误解了Windows的文件后缀名吗?
查看>>
谷歌浏览器插件
查看>>
gcc malloc/free的质疑
查看>>
Servlet注解
查看>>
今后几个月的IT读书计划
查看>>
蓝桥杯 传球游戏 动态规划
查看>>
apk反编译、smali修改、回编译笔记
查看>>
.Net程序员学习Linux最简单的方法(转载)
查看>>
Django DEBUG=False
查看>>
把实体 转为json 数据格式---jackson 的详细用法.
查看>>
数据库管理软件的由来
查看>>
Servlet容器如何处理请求资源路径
查看>>