チュートリアル: Windows Communication Foundation のサービス コントラクトを実装する

このチュートリアルでは、基本的な Windows Communication Foundation (WCF) アプリケーションの作成に必要な 5 つのタスクのうち 2 番目のタスクについて説明します。 このチュートリアルの概要については、「チュートリアル: Windows Communication Foundation アプリケーション入門」を参照してください。

WCF アプリケーションを作成するための次のステップは、前のステップで作成した WCF サービス インターフェイスを実装するコードを追加することです。 このステップでは、ユーザー定義の ICalculator インターフェイスを実装する CalculatorService という名前のクラスを作成します。 次のコードの各メソッドにより、電卓操作が呼び出されて、テストのためのテキストがコンソールに書き込まれます。

このチュートリアルでは、以下の内容を学習します。

  • WCF サービス コントラクトを実装するコードを追加します。
  • ソリューションをビルドします。

WCF サービス コントラクトを実装するコードを追加する

GettingStartedLib で、Service1.cs または Service1.vb ファイルを開き、そのコードを次のコードに置き換えます。

using System;
using System.ServiceModel;

namespace GettingStartedLib
{
    public class CalculatorService : ICalculator
    {
        public double Add(double n1, double n2)
        {
            double result = n1 + n2;
            Console.WriteLine("Received Add({0},{1})", n1, n2);
            // Code added to write output to the console window.
            Console.WriteLine("Return: {0}", result);
            return result;
        }

        public double Subtract(double n1, double n2)
        {
            double result = n1 - n2;
            Console.WriteLine("Received Subtract({0},{1})", n1, n2);
            Console.WriteLine("Return: {0}", result);
            return result;
        }

        public double Multiply(double n1, double n2)
        {
            double result = n1 * n2;
            Console.WriteLine("Received Multiply({0},{1})", n1, n2);
            Console.WriteLine("Return: {0}", result);
            return result;
        }

        public double Divide(double n1, double n2)
        {
            double result = n1 / n2;
            Console.WriteLine("Received Divide({0},{1})", n1, n2);
            Console.WriteLine("Return: {0}", result);
            return result;
        }
    }
}
Imports System.ServiceModel

Namespace GettingStartedLib

    Public Class CalculatorService
        Implements ICalculator

        Public Function Add(ByVal n1 As Double, ByVal n2 As Double) As Double Implements ICalculator.Add
            Dim result As Double = n1 + n2
            ' Code added to write output to the console window.
            Console.WriteLine("Received Add({0},{1})", n1, n2)
            Console.WriteLine("Return: {0}", result)
            Return result
        End Function

        Public Function Subtract(ByVal n1 As Double, ByVal n2 As Double) As Double Implements ICalculator.Subtract
            Dim result As Double = n1 - n2
            Console.WriteLine("Received Subtract({0},{1})", n1, n2)
            Console.WriteLine("Return: {0}", result)
            Return result

        End Function

        Public Function Multiply(ByVal n1 As Double, ByVal n2 As Double) As Double Implements ICalculator.Multiply
            Dim result As Double = n1 * n2
            Console.WriteLine("Received Multiply({0},{1})", n1, n2)
            Console.WriteLine("Return: {0}", result)
            Return result

        End Function

        Public Function Divide(ByVal n1 As Double, ByVal n2 As Double) As Double Implements ICalculator.Divide
            Dim result As Double = n1 / n2
            Console.WriteLine("Received Divide({0},{1})", n1, n2)
            Console.WriteLine("Return: {0}", result)
            Return result

        End Function
    End Class
End Namespace

App.config を編集する

GettingStartedLibApp.config を編集して、コードに行った変更を反映します。

  • Visual C# プロジェクトの場合:

    • 14 行目を <service name="GettingStartedLib.CalculatorService"> に変更します
    • 17 行目を <add baseAddress = "http://localhost:8000/GettingStarted/CalculatorService" /> に変更します
    • 22 行目を <endpoint address="" binding="wsHttpBinding" contract="GettingStartedLib.ICalculator"> に変更します
  • Visual Basic プロジェクトの場合は、次の操作を行います。

    • 14 行目を <service name="GettingStartedLib.GettingStartedLib.CalculatorService"> に変更します
    • 17 行目を <add baseAddress = "http://localhost:8000/GettingStarted/CalculatorService" /> に変更します
    • 22 行目を <endpoint address="" binding="wsHttpBinding" contract="GettingStartedLib.GettingStartedLib.ICalculator"> に変更します

コードのコンパイル

ソリューションをビルドして、コンパイル エラーがないことを確認します。 Visual Studio を使用している場合は、 [ビルド] メニューの [ソリューションのビルド] を選択します (または、Ctrl+Shift+B キーを押します)。

次のステップ

このチュートリアルでは、以下の内容を学習しました。

  • WCF サービス コントラクトを実装するコードを追加します。
  • ソリューションをビルドします。

次のチュートリアルに進み、WCF サービスを実行する方法を学習します。