作者:VB.NET开发
项目:System.Runtime.Serialization.Formatters.Binar
' 导入命名空间
Imports System.IO
Imports System.Collections
Imports System.Runtime.Serialization.Formatters.Binary
Imports System.Runtime.Serialization
Module App
Sub Main()
Serialize()
Deserialize()
End Sub
Sub Serialize()
' Create a hashtable of values that will eventually be serialized.
Dim addresses As New Hashtable
addresses.Add("Jeff", "123 Main Street, Redmond, WA 98052")
addresses.Add("Fred", "987 Pine Road, Phila., PA 19116")
addresses.Add("Mary", "PO Box 112233, Palo Alto, CA 94301")
' To serialize the hashtable (and its key/value pairs),
' you must first open a stream for writing.
' In this case, use a file stream.
Dim fs As New FileStream("DataFile.dat", FileMode.Create)
' Construct a BinaryFormatter and use it to serialize the data to the stream.
Dim formatter As New BinaryFormatter
Try
formatter.Serialize(fs, addresses)
Catch e As SerializationException
Console.WriteLine("Failed to serialize. Reason: " & e.Message)
Throw
Finally
fs.Close()
End Try
End Sub
Sub Deserialize()
' Declare the hashtable reference.
Dim addresses As Hashtable = Nothing
' Open the file containing the data that you want to deserialize.
Dim fs As New FileStream("DataFile.dat", FileMode.Open)
Try
Dim formatter As New BinaryFormatter
' Deserialize the hashtable from the file and
' assign the reference to the local variable.
addresses = DirectCast(formatter.Deserialize(fs), Hashtable)
Catch e As SerializationException
Console.WriteLine("Failed to deserialize. Reason: " & e.Message)
Throw
Finally
fs.Close()
End Try
' To prove that the table deserialized correctly,
' display the key/value pairs.
Dim de As DictionaryEntry
For Each de In addresses
Console.WriteLine("{0} lives at {1}.", de.Key, de.Value)
Next
End Sub
End Module
作者:VB程序
项目:System.Runtime.Serialization.Formatters.Binar
' 导入命名空间
Imports System.IO
Imports System.Collections
Imports System.Windows.Forms
Imports System.Runtime.Serialization.Formatters.Binary
Imports System.Runtime.Serialization
Public Class MainClass
Public Shared Sub Main()
Dim formatter As BinaryFormatter = New BinaryFormatter()
Dim output As FileStream
Dim fileName As String = "test.dat"
Dim employee As Employee = New Employee("First Name", "Last Name")
Try
output = New FileStream(fileName,FileMode.OpenOrCreate, FileAccess.Write)
formatter.Serialize(output, employee)
output.Close()
Catch fileException As FileNotFoundException
Console.WriteLine("File Does Not Exits")
Catch serializableException As SerializationException
Console.WriteLine("Error Writing to File")
Catch formattingException As FormatException
Console.WriteLine("Invalid Format")
Catch e As IOException
Console.WriteLine("Cannot close file")
End Try
Dim input As FileStream
Dim reader As BinaryFormatter = New BinaryFormatter()
input = New FileStream(fileName, FileMode.Open,FileAccess.Read)
Try
Dim em As Employee = CType(reader.Deserialize(input), Employee)
Console.WriteLine(em)
Catch serializableException As SerializationException
input.Close()
Console.WriteLine("No more records in file")
End Try
End Sub
End Class
<Serializable()> Public Class Employee
Private firstName, lastName As String
Public Sub New(ByVal first As String, ByVal last As String)
firstName = first
lastName = last
End Sub
Public Overrides Function ToString() As String
Return firstName & " " & lastName
End Function
End Class