チュートリアル: 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 を編集する
GettingStartedLib で App.config を編集して、コードに行った変更を反映します。
Visual C# プロジェクトの場合:
- 14 行目を
<service name="GettingStartedLib.CalculatorService">
に変更します - 17 行目を
<add baseAddress = "http://localhost:8000/GettingStarted/CalculatorService" />
に変更します - 22 行目を
<endpoint address="" binding="wsHttpBinding" contract="GettingStartedLib.ICalculator">
に変更します
- 14 行目を
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">
に変更します
- 14 行目を
コードのコンパイル
ソリューションをビルドして、コンパイル エラーがないことを確認します。 Visual Studio を使用している場合は、 [ビルド] メニューの [ソリューションのビルド] を選択します (または、Ctrl+Shift+B キーを押します)。
次のステップ
このチュートリアルでは、以下の内容を学習しました。
- WCF サービス コントラクトを実装するコードを追加します。
- ソリューションをビルドします。
次のチュートリアルに進み、WCF サービスを実行する方法を学習します。