以下のコードに示すように、XMLを作成しています
public class Group
{
[XmlElement(typeof(Manager))]
public Employee [] Staff;
[XmlElement (typeof(int)),
XmlElement (typeof(string)),
XmlElement (typeof(DateTime))]
public ArrayList ExtraInfo;
}
public class Employee
{
public string Name;
}
public class Manager:Employee
{
public int Level;
}
public class Run
{
public static void Main()
{
Run test = new Run();
test.SerializeObject("TypeEx.xml");
}
public void SerializeObject(string filename)
{
// Create an XmlSerializer instance.
XmlSerializer xSer =
new XmlSerializer(typeof(Group));
// Create object and serialize it.
Group myGroup = new Group();
Manager e1 = new Manager();
e1.Name = "Manager1";
Manager m1 = new Manager();
m1.Name = "Manager2";
m1.Level = 4;
Employee[] emps = {e1, m1};
myGroup.Staff = emps;
myGroup.ExtraInfo = new ArrayList();
myGroup.ExtraInfo.Add(".NET");
myGroup.ExtraInfo.Add(42);
myGroup.ExtraInfo.Add(new DateTime(2001,1,1));
TextWriter writer = new StreamWriter(filename);
xSer.Serialize(writer, myGroup);
writer.Close();
}
}
「 http://msdn.microsoft.com/en-IN/library/system.xml.serialization.xmlelementattribute.type(v=vs.80).aspx 」で共有。このシナリオでは、従業員に「e1」と「m1」の 2 人のマネージャーを追加しています。しかし、ループに 5 つのマネージャーを追加する必要がある場合は、このコードを次のように更新しました。 Manager[] a = new Manager[5];
for (int i = 0; i < 5; i++)
{
a[i] = new Manager();
a[i].Name = "temp" + i;
a[i].Level = i;
}
Employee[] empss = new Employee[5];
for (int k = 0; k < 5; k++)
{
empss[k] = new Employee();
myGroup.Staff = empss[k]; // line25
}
しかし、それは私に次のエラーを与えています. 誰かがそれを修正する方法を教えてもらえますか?