[Serializable()] public class SimplePerson : ISerializable { private string name = "未設定"; private string address = "未設定"; public void GetObjectData(SerializationInfo info, StreamingContext context) { info.AddValue("Name",name); info.AddValue("Address",address); } public SimplePerson() { } protected SimplePerson(SerializationInfo info, StreamingContext context) { name = info.GetString("Name"); address = info.GetString("Address"); } public string Name { get { return name; } set { name = value; } } public string Address { get { return address; } } } [Serializable()] public class Person : SimplePerson, ISerializable { public new void GetObjectData(SerializationInfo info, StreamingContext context) { base.GetObjectData(info,context); info.AddValue("Age",Age); } public Person() { } protected Person(SerializationInfo info, StreamingContext context) : base(info,context) { Age = info.GetInt32("Age"); } public int Age = 0; private string temporaryID = "未設定"; public void SetTemporaryID( string temporaryID ) { this.temporaryID = temporaryID; } public void Dump() { System.Diagnostics.Trace.WriteLine(Name); System.Diagnostics.Trace.WriteLine(Address); System.Diagnostics.Trace.WriteLine(Age); System.Diagnostics.Trace.WriteLine(temporaryID); } }