using System;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Soap;
public class Serializer {
public static void Main(string [] args) {
StudentList personnel = CreateStudentList();
IFormatter soapFormatter = new SoapFormatter();
using (FileStream stream = File.OpenWrite("StudentListSoap.xml")) {
soapFormatter.Serialize(stream,personnel);
}
}
private static StudentList CreateStudentList() {
StudentList personnel = new StudentList();
personnel.Students = new Employee [] {new Employee()};
personnel.Students[0].FirstName = "Apple";
personnel.Students[0].MiddleInitial = "M";
personnel.Students[0].LastName = "Bear";
personnel.Students[0].Addresses = new Address [] {new Address()};
personnel.Students[0].Addresses[0].AddressType = AddressType.Home;
personnel.Students[0].Addresses[0].Street = new string [] {"Culloden"};
personnel.Students[0].Addresses[0].City = "Vancouver";
personnel.Students[0].Addresses[0].State = State.BC;
personnel.Students[0].Addresses[0].Zip = "V5V 4X7";
personnel.Students[0].StartDate = new DateTime(2006,10,12);
return personnel;
}
}
[Serializable]
public enum AddressType {
Home,
Office
}
[Serializable]
public enum State {
BC, ON
}
[Serializable]
public class Address {
public AddressType AddressType;
public string[] Street;
public string City;
public State State;
public string Zip;
}
[Serializable]
public class TelephoneNumber {
public string AreaCode;
public string Exchange;
public string Number;
}
[Serializable]
public class Employee {
public string FirstName;
public string MiddleInitial;
public string LastName;
public Address [] Addresses;
public TelephoneNumber [] TelephoneNumbers;
public DateTime StartDate;
}
[Serializable]
public class StudentList {
public Employee [] Students;
}