面试题答案
一键面试- 引入命名空间:
在使用
BinaryFormatter
之前,需要引入System.Runtime.Serialization.Formatters.Binary
命名空间。Imports System.Runtime.Serialization.Formatters.Binary
- 定义可序列化的类:
要使类能够被序列化,需要标记为
Serializable
特性。<Serializable()> Public Class MyClass Public intValue As Integer Public stringValue As String End Class
- 序列化操作:
Public Sub SerializeObject() Dim obj As New MyClass() obj.intValue = 10 obj.stringValue = "Hello" Dim formatter As New BinaryFormatter() Using stream As New FileStream("MySerializedFile.bin", FileMode.Create, FileAccess.Write) formatter.Serialize(stream, obj) End Using End Sub
- 反序列化操作:
Public Function DeserializeObject() As MyClass Dim formatter As New BinaryFormatter() Using stream As New FileStream("MySerializedFile.bin", FileMode.Open, FileAccess.Read) Return CType(formatter.Deserialize(stream), MyClass) End Using End Function
在上述代码中,首先引入了必要的命名空间,然后定义了一个可序列化的类MyClass
,包含整数和字符串字段。接着展示了如何使用BinaryFormatter
进行序列化和反序列化操作。序列化时创建一个MyClass
实例并填充数据,通过BinaryFormatter
将其写入文件。反序列化时从文件中读取并转换回MyClass
实例。