定义一个可以序列化的类;必须为公共字段、属性、方法;必须有一个公共的构造方法存在。
<Serializable()> Public Class UnitsSystem
'试验类型名
Public TestTypeName As String
'试验类型号
Public TestTypeBh As String
''' <summary>
''' 本试验类型所具有的所有单位体系名称
''' </summary>
''' <remarks></remarks>
Public UnitsSystemName As List(Of String)
''' <summary>
''' 纪录单位和系数的结构体
''' </summary>
''' <remarks></remarks>
Public Structure UnitsSet
Dim UnitName As String
Dim UnitCoefficient As Single
End Structure
''' <summary>
''' 单位体系集合(记录了当前试验类型所有的单位体系详细信息)
''' </summary>
''' <remarks></remarks>
Public UnitsSystemCollection As List(Of List(Of UnitsSet))
Public Sub New()
End Sub
Public Sub AddNew()
UnitsSystemName = New List(Of String)
UnitsSystemCollection = New List(Of List(Of UnitsSet))
End Sub
End Class
Imports System.IO
Imports System.Xml.Serialization
Imports System.Xml.Serialization.XmlSerializer
1.XML的序列化:
''' <summary>
''' 填充类,并序列化成文件
''' </summary>
''' <param name="FileName">序列化成的文件名</param>
''' <param name="TestTypeName">试验类型名</param>
''' <param name="TestTypeBh">试验类型编号</param>
''' <param name="UnitSystemName">单位体系名称</param>
''' <param name="List">一个单位体系集合</param>
''' <remarks></remarks>
Private Sub AddClassAndSerializationFile(ByVal FileName As String, ByVal TestTypeName As String, ByVal TestTypeBh As String, ByRef List As List(Of UnitsSet), Optional
ByVal UnitSystemName As String = "标准单位体系")
Dim UnitSystemObject As UnitsSystem.UnitsSystem = DeSerializationFile(FileName)
'赋值单位体系
UnitSystemObject.TestTypeName = TestTypeName
UnitSystemObject.TestTypeBh = TestTypeBh
UnitSystemObject.UnitsSystemName.Add(UnitSystemName)
UnitSystemObject.UnitsSystemCollection.Add(List)
SerializationObject(FileName, UnitSystemObject)
UnitSystemObject = Nothing
End Sub
''' <summary>
''' 序列化
''' </summary>
''' <param name="FileName"></param>
''' <param name="UnitSystemObject"></param>
''' <remarks></remarks>
Private Sub SerializationObject(ByVal FileName As String, ByRef UnitSystemObject As UnitsSystem.UnitsSystem)
Dim writer As New System.Xml.Serialization.XmlSerializer(GetType(UnitsSystem.UnitsSystem))
Dim file As New System.IO.StreamWriter(FileName)
writer.Serialize(file, UnitSystemObject)
file.Close()
End Sub
''' <summary>
''' 反序列化文件并返回单位体系的一个对象
''' </summary>
''' <param name="FileName">反序列化的文件名</param>
''' <returns>返回一个单位体系对象</returns>
''' <remarks></remarks>
Private Function DeSerializationFile(ByVal FileName As String) As UnitsSystem.UnitsSystem
If System.IO.File.Exists(FileName) = False Then
Dim UnitSystemObject As New UnitsSystem.UnitsSystem
UnitSystemObject.AddNew()
Return UnitSystemObject
End If
Return DeSerializationObject(FileName)
End Function
''' <summary>
''' 反序列化
''' </summary>
''' <param name="FileName"></param>
''' <returns></returns>
''' <remarks></remarks>
Private Function DeSerializationObject(ByVal FileName As String)
Dim reader As New System.Xml.Serialization.XmlSerializer(GetType(UnitsSystem.UnitsSystem))
Dim file As New System.IO.StreamReader(filename)
Dim UnitSystemObject As UnitsSystem.UnitsSystem
UnitSystemObject = CType(reader.Deserialize(file), UnitsSystem.UnitsSystem)
file.Close()
Return UnitSystemObject
End Function
对于结构体作为泛型list的一个子项;赋值这样做
Dim NodeUnit As UnitsSet
NodeUnit.UnitName = YesDW
NodeUnit.UnitCoefficient = Convert.ToSingle(YesXS)
UnitSystemObject.UnitsSystemCollection.Item(0).Item(i) = NodeUnit
分享到:
相关推荐
VB.NET XML和JSON序列化与反序列化,根据实体类可以快速解析XML和json文件,和生成xml,json文件
解释了从XML Schema,序列化,SOAP,WSDL开始的Web服务的基础,并介绍了使用ASP.NET实施Web服务的实用细节。
自定义类 未标记为可序列化 错误 背,一开始没有问题,后来不知道怎么拉,就出现这个问题,而且老是搞不定.
该Demo采用XmlSerializer对XML进行封装,序列化与反序列化以及读取指定节点的值
Dictionary序列化源码 datatable序列化源码 文件反序列化为泛型数组 序列化泛型数组为xml文件 值得下载 源码可以运行
利用序列化来保留TreeView控件层次结构。
实现C#和VB.net之间的相互转换 深入剖析ASP.NET组件设计]一书第三章关于ASP.NET运行原理讲述的补白 asp.net 运行机制初探(httpModule加载) 利用反射来查看对象中的私有变量 关于反射中创建类型实例的两种方法 ASP...
使用XML解序列化对象图的技巧和窍门
对于需要传输图片等引用类数据,可以通过序列化和反序列化配合共享内存实现跨进程(跨EXE)通信 共享内存可以从磁盘文件中映射,也可以直接映射到内存中。 如果映射到磁盘中,可以实现持久化。 如果只映射到内存中,...
protobuf-net工具,可以使用该工具生成序列化的dll等
开源.NET库,用于解析和序列化RSS,Atom和JSON feed。 重要:该库当前仅处于预发行版本中。 该库是用C#编写的,并带有,因此可以随意进行分叉或在商业上使用。 感谢您提供任何反馈,请访问页面或给我发送。 ...
有关使用XML反树化/序列化基于树视图的内容的提示和技巧
未来可能会添加其他 .NET 语言,如 F# 的 VB.NET。 输出是具有单个 20KB DLL 依赖项的完全托管代码(作为 nuget 包的一部分自动添加)。 没有后期构建步骤,没有运行时类型检查,没有动态 IL 生成或本机库,这意味...
9.2 xml序列化 343 9.3 system.xml文档支持 348 9.4 xml流样式分析程序 348 9.4.1 写入xml流 349 9.4.2 读取xml流 352 9.4.3 文档对象模型(dom) 360 9.5 xslt转换 364 9.5.1 使用xslt转换不同的xml...
q designer.cs页文件:用来为页面的控件做初始化工作,一般只有ASP.NET应用程序(Web Application)才有。 ASP.NET页面中包含两种代码模型,一种是单文件页模型,另一种是代码隐藏页模型。这两个模型的功能完全一样...
形状序列化器您需要开发 3 个表示图形形状的简单类 Triangle、Circle、Square 和一个 Group 类,该类将包含任意数量的图形形状,包括其他组。 开发一组负责将形状树序列化为 XML 或 JSON 格式的类。 写下所有必需的...
C#【控件操作篇】实现chart数据点的框选、删除、平移(中级)
这个类可以将结构体保存到文件,声明结构体的时候必须使用()>标记为可序列化
·使用自持续VB6 类,序列化.NET对象和IIS/ASP .NET应用程序的理想选择。 ·完全支持标准版和定制版文档属性。 ·利用与Microsoft自己的应用程序相同的文件存储系统。 2.5版本的新特性 ·文件属性控件 – ...