Dziedziczenie kontraktów

Interfejsy kontraktów usług mogą dziedziczyć po sobie nawzajem, pozwalając na zdefiniowanie hierarchii kontraktów. Nie można jednak dziedziczyć atrybutu ServiceContract:

[AttributeUsage(Inherited = false,...)]
public sealed class ServiceContractAttribute : Attribute
{...}

W rezultacie każdy poziom hierarchii interfejsów musi posiadać atrybut ServiceContract, jak pokazano na Przykład 2-3.

Przykład 2-3. Hierarchia kontraktów po stronie usługi

[ServiceContract]
interface ISimpleCalculator
{
   [OperationContract]
   int Add(int arg1,int arg2);
}

[ServiceContract]
interface IScientificCalculator : ISimpleCalculator
{
   [OperationContract]
   int Multiply(int arg1,int arg2);
}

W przypadku implementacji hierarchii kontraktów pojedyncza klasa ...

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.