ArrayListIuWFNg̓eXMLt@CɕۑOɁuNXAzȂǂ̓eXMLt@CɕۑAv@Љ܂Â̗悤SampleClassNX̃ołArrayListSampleClass2̃RNVł鎞ɑOƓ@SampleClassXMLt@Cɕۑ悤ƂƁAG[i'System.InvalidOperationException' ̃nhĂȂO system.xml.dll Ŕ܂Bǉ : XML hLg𐶐ɃG[܂Bj܂BႦ΁Â悤ȃP[XłB

[VB.NET]
'̃NX錾Ă̂Ƃ
'Public Class SampleClass
'    Public ClassList As New ArrayList()
'    Public Sub New()
'        ClassListSampleClass2̃CX^Xǉ
'        Dim myClass2 As New SampleClass2()
'        myClass2.Number = 1
'        myClass2.Message = "string"
'        ClassList.Add(myClass2)
'    End Sub
'End Class
'
'Public Class SampleClass2
'    Public Number As Integer
'    Public Message As String
'End Class

'ۑIuWFNg
Dim myClasses As New SampleClass()

'XMLt@Cɕۑ
Dim serializer1 As New System.Xml.Serialization.XmlSerializer(GetType(SampleClass))
Dim fs1 As New IO.FileStream("C:\test.xml", IO.FileMode.Create)
'G[
serializer1.Serialize(fs1, myClasses)
fs1.Close()

[C#]
////̃NX錾Ă̂Ƃ
//public class SampleClass
//{
//    public ArrayList ClassList = new ArrayList();
//    public SampleClass()
//    {
//        //ClassListSampleClass2̃CX^Xǉ
//        SampleClass2 myClass2 = new SampleClass2();
//        myClass2.Number = 1;
//        myClass2.Message = "string";
//        ClassList.Add(myClass2);
//    }
//}
//
//public class SampleClass2
//{
//    public int Number;
//    public string Message;
//}

//ۑIuWFNg
SampleClass myClasses = new SampleClass();

//XMLt@Cɕۑ
System.Xml.Serialization.XmlSerializer serializer1 =
    new System.Xml.Serialization.XmlSerializer(
        typeof(SampleClass));
System.IO.FileStream fs1 =
    new System.IO.FileStream(@"C:\test.xml",
    System.IO.FileMode.Create);
//G[
serializer1.Serialize(fs1, myClasses);
fs1.Close();

̃G[邽߂ɂ́Â悤ɂXmlSerializerCX^X쐬Objectzɑ}\̂邷ׂẴIuWFNǧ^ʒmKv܂i܂L̗łSampleClassClassListɑ}SampleClass2NX^ʒmjB鎞lTypezw肷Kv܂B

ɊÂAL̗CƎ̂悤ɂȂ܂B

[VB.NET]
'̗ƓSampleClassSampleClass2錾Ă̂Ƃ

'ۑIuWFNg
Dim myClasses As New SampleClass()

'VAǉ̃IuWFNg^Typez쐬
Dim et() As Type = New Type() {GetType(SampleClass2)}

'XMLt@Cɕۑ
Dim serializer1 As New System.Xml.Serialization.XmlSerializer(GetType(SampleClass), et)
Dim fs1 As New IO.FileStream("C:\test.xml", IO.FileMode.Create)
serializer1.Serialize(fs1, myClasses)
fs1.Close()

'ۑe𕜌
Dim serializer2 As New System.Xml.Serialization.XmlSerializer(GetType(SampleClass), et)
Dim fs2 As New IO.FileStream("C:\test.xml", IO.FileMode.Open)
Dim loadClass As SampleClass
loadClass = serializer2.Deserialize(fs2)
fs2.Close()

[C#]
//̗ƓSampleClassSampleClass2錾Ă̂Ƃ

//ۑIuWFNg
SampleClass myClasses = new SampleClass();

//VAǉ̃IuWFNg^Typez쐬
Type[] et = new Type[] {typeof(SampleClass2)};

//VAǉ̃IuWFNg^Typezw肵
//XMLt@Cɕۑ
System.Xml.Serialization.XmlSerializer serializer1 =
    new System.Xml.Serialization.XmlSerializer(
        typeof(SampleClass), et);
System.IO.FileStream fs1 =
    new System.IO.FileStream(@"C:\test.xml",
        System.IO.FileMode.Create);
serializer1.Serialize(fs1, myClasses);
fs1.Close();

//VAǉ̃IuWFNg^Typezw肵
//ۑe𕜌
System.Xml.Serialization.XmlSerializer serializer2 =
    new System.Xml.Serialization.XmlSerializer(
        typeof(SampleClass), et);
System.IO.FileStream fs2 =
    new System.IO.FileStream(@"C:\test.xml",
        System.IO.FileMode.Open);
SampleClass loadClass;
loadClass = (SampleClass) serializer2.Deserialize(fs2);
fs2.Close();

//'C:\test.xml'̓ê͎悤ɂȂ܂B
//
//<?xml version="1.0"?>
//<SampleClass xmlns:xsd="http://www.w3.org/2001/XMLSchema"
//    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
//  <ClassList>
//    <anyType xsi:type="SampleClass2">
//      <Number>1</Number>
//      <Message>string</Message>
//    </anyType>
//  </ClassList>
//</SampleClass>

͂@܂BSampleClassClassListɑw肷@łB̕@SampleClassɎ邾ŁAƂ́uNXAzȂǂ̓eXMLt@CɕۑAv@Ƃ܂ŕۑAł܂B

̕@ŏCƁÂ悤ɂȂ܂BiSampleClassNX̓eύXĂ܂Bj

[VB.NET]
'̃NX錾Ă̂Ƃ
'Public Class SampleClass
'    őw肷
'    <Xml.Serialization.XmlArray(), _
'        Xml.Serialization.XmlArrayItem(GetType(SampleClass2))> _
'    Public ClassList As New ArrayList()
'    Public Sub New()
'        ClassListSampleClass2̃CX^Xǉ
'        Dim myClass2 As New SampleClass2()
'        myClass2.Number = 1
'        myClass2.Message = "string"
'        ClassList.Add(myClass2)
'    End Sub
'End Class
'
'Public Class SampleClass2
'    Public Number As Integer
'    Public Message As String
'End Class

'ۑIuWFNg
Dim myClasses As New SampleClass()

'XMLt@Cɕۑ
Dim serializer1 As New System.Xml.Serialization.XmlSerializer(GetType(SampleClass))
Dim fs1 As New IO.FileStream("C:\test.xml", IO.FileMode.Create)
serializer1.Serialize(fs1, myClasses)
fs1.Close()

[C#]
////̃NX錾Ă̂Ƃ
//public class SampleClass
//{
//    //őw肷
//    [System.Xml.Serialization.XmlArray(),
//        System.Xml.Serialization.XmlArrayItem(typeof(SampleClass2))]
//    public ArrayList ClassList = new ArrayList();
//    public SampleClass()
//    {
//        //ClassListSampleClass2̃CX^Xǉ
//        SampleClass2 myClass2 = new SampleClass2();
//        myClass2.Number = 1;
//        myClass2.Message = "string";
//        ClassList.Add(myClass2);
//    }
//}
//
//public class SampleClass2
//{
//    public int Number;
//    public string Message;
//}
            
//ۑIuWFNg
SampleClass myClasses = new SampleClass();

//XMLt@Cɕۑ
System.Xml.Serialization.XmlSerializer serializer1 =
    new System.Xml.Serialization.XmlSerializer(
        typeof(SampleClass));
System.IO.FileStream fs1 =
    new System.IO.FileStream(@"C:\test.xml",
        System.IO.FileMode.Create);
serializer1.Serialize(fs1, myClasses);
fs1.Close();

//'C:\test.xml'̓ê͎悤ɂȂ܂B
//
//<?xml version="1.0"?>
//<SampleClass xmlns:xsd="http://www.w3.org/2001/XMLSchema"
//    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
//  <ClassList>
//    <SampleClass2>
//      <Number>1</Number>
//      <Message>string</Message>
//    </SampleClass2>
//  </ClassList>
//</SampleClass>

