网站建设资讯

NEWS

网站建设资讯

关于vb点虐 不要序列化的信息

VB.NET 如何反序列化通过百度翻译API获得的JSON字符串 高分求救!!

这个跟反序列化毫无关系。

创新互联主要从事成都做网站、成都网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务相城,十余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:13518219792

分隔字符串就用 Split(),没什么难度。

VB.NET中对象的克隆[1]

在 DMAX里面 做好一个物体(父物体)以后 可以选择Edit菜单中的Clone 下面有三中选项 Copy(生成一个同模样的子物体 两者的操作互不影响) Instance(父子互动 父物体的操作同样影响子物体 子物体也一样) 还有一个Reference(暂不考虑)

在VB NET 同样会碰到这样的问题 创建一个复杂对象(可能有很多种不同的数据类型)的实例 进行了一系列操作之后 想让一个中间变量或几个(另外的实例)保存它的状态 我们一般采取逐个变量赋值 有时候会写很长的代码 )这实际上就是上述的Copy问题 而对于Instance 很简单 新建一个实例 指向一下就可以了

Dim objA As New CResume Cresume是一个自定义的记录简历信息的类

然后进行初始化 比如

objA Name= AAA

objA Address= Shanghai China

……

Dim objB As New CResume 新建一个实例

objB=objA

这样的话 objB跟objA有相同状态 值得注意的是objB改变一个Name 比如

objB Name= BBB

而实际上 objA的Name也变为 BBB 理由很简单 它们指向同一块内存空间

下面我们重点讨论对象的Clone问题 即Copy以后的各个对象互不影响 关键是如何采用简单的方法解决我们的问题 MemoryStream和BinFormatter配合一下可以很简单的把对象克隆

MemoryStream 我以前提到过 是支持存储区为内存的流

BinFormatter 主要以二进制形式序列化和反序列化对象

主要思路

先用BinFormatter的Serialize方法 把对象存储在MemoryStream流中 (操作跟其他Stream一样) 然后Deserialize反序列化 得到一个流式的数据 转化为原来对象的类型就可以了 是不是很简单?呵呵 看一下代码再说

CResume类的代码

Imports System IO

Imports System Runtime Serialization Formatters

Serializable() Public Class CResume  

注意类前面加上Serializable()属性 否则不可以序列化

Dim m_Name As String         姓名

Dim m_Address As String         地址

Public Property Address() As String

Get

Return m_Address

End Get

Set(ByVal NewAddress As String)

m_Address = NewAddress

End Set

End Property

lishixinzhi/Article/program/net/201311/15510

为什么vb/c#点虐 里面winform,窗体不能序列化?

因为他没有从serialable继承。

任何东西都可以序列化,没什么保护或者技术困难的问题。


当前文章:关于vb点虐 不要序列化的信息
新闻来源:http://cdweb.net/article/ddicgpo.html