-
HashTable Serialazation
Does anyone know why I can serialize a Hashtable to a binary format but It wont serialize to a XML format?
Code:
Imports System
Imports System.Xml
Imports System.Xml.Serialization
Imports System.IO
Public Class Form1
Inherits System.Windows.Forms.Form
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim aCnt As Int16
Dim TestHash As New Hashtable()
'Load up some dummy classes into the ht
For aCnt = 1 To 20
Dim TestCls As New clsTest("MyName" & aCnt.ToString, aCnt)
TestHash.Add(aCnt, TestCls)
Next
'Save it to disk as binary (works fine)
If File.Exists("hash.dat") = True Then File.Delete("hash.dat")
Dim fs As New FileStream("hash.dat", FileMode.CreateNew)
Dim bf As New Runtime.Serialization.Formatters.Binary.BinaryFormatter()
bf.Serialize(fs, TestHash)
fs.Close()
'Save it to disk in XML (doesn't work)
If File.Exists("hash.xml") = True Then File.Delete("hash.xml")
Dim fsx As New FileStream("hash.xml", FileMode.CreateNew)
Dim bfx As New XmlSerializer(GetType(clsTest))
bfx.Serialize(fsx, TestHash)
fsx.Close()
End Sub
End Class
<Serializable()> Public Class clsTest
Public sName As String
Public MyID As Int16
Public Sub New()
'Default constructor
End Sub
Public Sub New(ByVal iName As String, ByVal iID As Int16)
sName = iName
MyID = iID
End Sub
End Class