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 the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.