Recently I needed to serialize abstract classes in WCF. The best way to explain it is with an example. I have a abstract class [KnownType(typeof(CreditCar... public abstract class Payment { private string _amount; private string _currency; [DataMember] public string currency { get { return _currency; } set { _currency = value; } } [DataMember] public string amount { get { return _amount; } set { _amount = value; } } } The class deriving it is [DataContract] public class CreditCardPayment:Payment...