[KnownType(typeof(TransmissionSubclass))] [KnownType(typeof(TransmissionClass))] [DataContract] public class TransmissionClass { [DataMember] public string Name {get; private set;} [DataMember] public List SubClasses{get;private set;} public TransmissionClass(string name, List aList) : this(name) { SubClasses = aList; } /* */ public TransmissionClass(string name) { Name = name; } public override string ToString() { return "TransmissionClass,:" + Name + "|count:" + SubClasses.Count; } } [DataContract] [Serializable] public class TransmissionSubclass : MySubInterface { [DataMember] public int Value{get;private set;} public TransmissionSubclass(int aValue) { Value = aValue; } }