In this task, you will define and implement the service contract for your durable service.
Defining the contract
-
Open Visual Studio 2008, click File, and select New and then Project.
-
In the New Project dialog box, under WCF, select the WCF Service Library template.
-
Name your project SimpleDurableService and click OK.
Visual Studio 2008 generates the following files for your WCF service: an App.config file to store configuration settings, a source file that contains a contract definition, and a source file that contains the service class that implements the contract definition.
The template creates a service with two operations and a data contract for a custom type. In this tutorial, you will define new operations for your durable service.
-
Open IService1.cs (or IService1.vb if you created a Visual Basic solution) and replace the existing interface definition with the following code and remove the existing DataContractAttribute definition.
<ServiceContract()> _ Public Interface IService1 <OperationContract()> _ Function Add(ByVal n1 As Integer) As Integer <OperationContract()> _ Function Subtract(ByVal n1 As Integer) As Integer <OperationContract()> _ Function Multiply(ByVal n1 As Integer) As Integer <OperationContract()> _ Sub EndPersistence() End Interface
[ServiceContract] public interface IService1 { [OperationContract] int Add(int n1); [OperationContract] int Subtract(int n1); [OperationContract] int Multiply(int n1); [OperationContract] void EndPersistence(); }
-
Open Service1.cs (or Service1.vb if you created a Visual Basic solution).
-
Implement the updated IService1 interface in your Service1 class definition.
Visual Studio automatically creates default implementations for your interface methods, which you will modify in the next step.
-
Modify the existing class definition to perform the appropriate logic as shown in the following code:
Public Class Service1 Implements IService1 Private currentValue As Integer Public Function Add(ByVal n1 As Integer) As Integer Implements IService1.Add currentValue += n1 Return currentValue End Function Public Sub EndPersistence() Implements IService1.EndPersistence End Sub Public Function Multiply(ByVal n1 As Integer) As Integer Implements IService1.Multiply currentValue *= n1 Return currentValue End Function Public Function Subtract(ByVal n1 As Integer) As Integer Implements IService1.Subtract currentValue -= n1 Return currentValue End Function End Class
public class Service1 : IService1 { int currentValue = default(int); #region IService1 Members public int Add(int n1) { return (currentValue += n1); } public int Subtract(int n1) { return (currentValue -= n1); } public int Multiply(int n1) { return (currentValue *= n1); } public void EndPersistence() { } #endregion }
At this point, the WCF service you created is exactly the same as any WCF service you created in .NET Framework 3.0. The next task will show you how to take this service and persist its current state to a persistence store so that in the event your service is disconnected from the client, you can communicate with the client again at a later time from the last successful operation that was invoked.
See Also
Copyright © 2007 by Microsoft Corporation. All rights reserved.
Last Published: 2010-03-04