Hierarchia kontraktów danych

Twoja klasa kontraktu danych może dziedziczyć po innej klasie kontraktu danych. WCF wymaga, żeby każdy poziom w hierarchii klas jawnie subskrybował (ang. opt in) kontrakt danych, ponieważ atrybut DataContract nie jest dziedziczony:

[DataContract]
class Contact
{
   [DataMember]
   public string FirstName;
   [DataMember]
   public string LastName;
}
[DataContract]
class Customer : Contact
{
   [DataMember]
   public int CustomerNumber;
}

Jeśli nie oznaczysz każdego poziomu hierarchii klas atrybutem serializable lub DataContract, w czasie ładowania usługi zostanie rzucony wyjątek typu InvalidDataContractException. WCF pozwala na łączenie atrybutów Serializable i DataContract w hierarchii klas:

[Serializable] class Contact {...} [DataContract] ...

Get Programowanie usług WCF now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.