Public Class TestClass
Private _message As String
Private _number As Integer
Public Property Message() As String
Get
Return _message
End Get
Set(ByVal Value As String)
_message = value
End Set
End Property
Public Property Number() As Integer
Get
Return _number
End Get
Set(ByVal Value As Integer)
_number = value
End Set
End Property
Public Sub New(ByVal str As String, ByVal num As Integer)
_message = str
_number = num
End Sub
End Class
public class TestClass
{
private string _message;
private int _number;
public string Message
{
get {return _message;}
set {_message = value;}
}
public int Number
{
get {return _number;}
set {_number = value;}
}
public TestClass(string str, int num)
{
_message = str;
_number = num;
}
}
Imports System
Imports System.IO
Imports System.Runtime.Serialization
Imports System.Runtime.Serialization.Formatters.Binary
Public Class MainClass
Public Shared Sub Main()
'保存先のファイル名Dim fileName As String = "C:\test.obj"
'TestClassオブジェクトを作成Dim obj1 As New TestClass("テストです。", 123)
'オブジェクトの内容をファイルに保存する
SaveToBinaryFile(obj1, fileName)
'オブジェクトの内容をファイルから読み込み復元するDim obj2 As TestClass = CType(LoadFromBinaryFile(fileName), TestClass)
'読み込んだオブジェクトの内容を表示
Console.WriteLine(obj2.Message)
Console.WriteLine(obj2.Number)
Console.ReadLine()
End Sub''' <summary>
''' オブジェクトの内容をファイルから読み込み復元する
''' </summary>
''' <param name="path">読み込むファイル名</param>
''' <returns>復元されたオブジェクト</returns>Public Shared Function LoadFromBinaryFile(ByVal path As String) As Object
Dim fs As New FileStream(path, FileMode.Open, FileAccess.Read)
Dim f As New BinaryFormatter
'読み込んで逆シリアル化するDim obj As Object = f.Deserialize(fs)
fs.Close()
Return obj
End Function''' <summary>
''' オブジェクトの内容をファイルに保存する
''' </summary>
''' <param name="obj">保存するオブジェクト</param>
''' <param name="path">保存先のファイル名</param>Public Shared Sub SaveToBinaryFile( _
ByVal obj As Object, ByVal path As String)
Dim fs As New FileStream( _
path, FileMode.Create, FileAccess.Write)
Dim bf As New BinaryFormatter
'シリアル化して書き込む
bf.Serialize(fs, obj)
fs.Close()
End Sub
End Class