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 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.