Operacje demarkacyjne

W pewnych przypadkach kontrakty stanowe niejawnie zakładają, że wywołania operacji będą następowały w określonej kolejności. Niektóre operacje nie mogą być wywoływane jako pierwsze, inne muszą być wywoływane jako ostatnie. Przeanalizujmy na przykład kontrakt używany do zarządzania zamówieniami klientów:

[ServiceContract(SessionMode = SessionMode.Required)]
interface IOrderManager
{
   [OperationContract]
   void SetCustomerId(int customerId);

   [OperationContract]
   void AddItem(int itemId);

   [OperationContract]
   decimal GetTotal();

   [OperationContract]
   bool ProcessOrders();
}

Kontrakt przewiduje następujące ograniczenia: w pierwszej operacji w ramach sesji aplikacja kliencka musi przekazać identyfikator nabywcy (w przeciwnym razie nie ...

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.