Namespace SerializeTest


Class Foo
Public
	a As Long
	b As Long
	c As Long
	d As Long

	Sub Foo()
		a=100
		b=200
		c=300
		d=400
	End Sub
End Class

Sub TestMain()
	' 一時ディレクトリを取得
	Dim tempDir = GetExclusiveTempDirPath( "SerializeTest" )

	' fooインスタンスを生成
	Dim foo = New Foo
	foo.a = 500
	foo.b = 600
	foo.c = 700
	foo.d = 800


	'----------------------------------------------------------------
	' シリアライズ
	'----------------------------------------------------------------

	' 保存先のファイルを開いて、
	Dim fooXmlFilePath = tempDir + "\foo.xml"
	Dim ofs = New System.IO.FileStream( fooXmlFilePath, System.IO.FileMode.Create )

	' シリアライズして、
	Dim serializer = New System.Xml.Serialization.XmlSerializer( foo.GetType() )
	serializer.Serialize( ofs, foo )

	' 閉じる。
	ofs.Close()


	'----------------------------------------------------------------
	' デシリアライズ
	'----------------------------------------------------------------

	' 読込先のファイルを開いて
	Dim ifs = New System.IO.FileStream( fooXmlFilePath, System.IO.FileMode.Open )

	' デシリアライズして
	Dim fooDash = serializer.Deserialize( ifs ) As Foo

	' 閉じる
	ifs.Close()

	UnitTest( "XmlSerializer", foo.a = fooDash.a and foo.b = fooDash.b and foo.c = fooDash.c and foo.d = fooDash.d  )
End Sub


End Namespace

SerializeTest.TestMain()
