http://blogs.wankuma.com/rti/archive/2008/12/08/162980.aspx
WCF メモ
の続きです。
WCF を採用するものが決まったら、後は実際に使ってみるのが良いでしょう。
以下のサンプルコードを用意してみました。
static void Main(string[] args) {
var z = this.足し算(5, 3);
Console.WriteLine(z);
Console.ReadKey();
}
// このロジックをサービスとして提供する
public static int 足し算(int a, int b) {
return a + b;
}
上記は、5 + 3 を計算してコンソールに 8 を出力するサンプルコードです。
但し、足し算ロジック本体は、メソッドとして独立しています。
今回は、この足し算を WCF を使ったサービスとして提供してみたいと思います。
サービスとして提供するために、上記のプロジェクトを、以下のように 3 つに分解します。
1.WCF サービスライブラリ・・・サービスとして公開するロジックのライブラリです
2.WCF サービスホスト・・・クライアントからの要求を受けてサービスを実行します
3.WCF サービスクライアント・・・サービスを利用して足し算させた結果を表示します
最初に、
WCF サービスライブラリ
用のプロジェクトを新規に作ります。
この時、「WCF サービスライブラリ」というテンプレートを使うと簡単です。
プロジェクト名はデフォルトのままの「WcfServiceLibrary1」とします。
ここで、IService1.cs と Service1.cs の 2 つのファイルを開いて以下のようにします。
using System.ServiceModel;
namespace WcfServiceLibrary1 {
[ServiceContract]
public interface IService1 {
[OperationContract] int 足し算(int a, int b);
}
}
using System;
namespace WcfServiceLibrary1 {
public class Service1 : IService1 {
public int 足し算(int a, int b) {
return a + b;
}
}
}
やっていることをまとめると以下の 3 つです。
1.Service1 クラスに提供したいメソッドの実装を書く
2.Service1 クラスのインターフェイスを定義して継承
3.IService1 インターフェイスに[ServiceContract]属性を、足し算メソッドに[OperationContract] 属性を付与
現時点では、属性の内容はおまじないだと思って下さい。
WCF サービスライブラリは、これだけで OK です。
・・・(続く)