WCFサービスの定義
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/09/05 05:43 UTC 版)
「Windows Communication Foundation」の記事における「WCFサービスの定義」の解説
WCFサービスクラスは、サービスをメソッド群として実装する。さらに、少なくとも1つのサービスコントラクトが定義され、そこにそのサービスが実行できる操作が定義される。オプションとしてデータコントラクトも定義でき、操作によって利用されるデータの種類を記述できる。 コントラクトは .NET Attributes を使って定義される。WCFサービスとして公開されるクラスには、ServiceContract 属性を付与するか、その属性が付与されたインターフェイスを実装する必要がある。クライアントが SOAP メッセージを使って呼び出せるメソッドには、OperationContract 属性を付与しなければならない。これらの属性によって WSDL の記述が自動的に生成され、クライアントはそれを参照可能となる。 1つのサービスに複数のサービスコントラクトを設けることもできる。これは複数の .NET インターフェイスを定義し、それぞれに ServiceContract 属性を付与することでなされる。サービスクラスには、それら全インターフェイスを実装する。 ServiceContract と OperationContract 属性はまた、既存の契約を参照するインターフェイスを持つこともでき、インターフェイスのバージョン付けも可能となっている。 サービスコントラクトには、明示的または暗黙的なデータコントラクトが必ず対応しており、そのサービスが使うデータを定義している。あるサービスが必要とするデータが単純な型だった場合(整数、浮動小数点数など)、WCF は自動的にデータコントラクトを定義する。一方、データが複雑なオブジェクトや構造体だった場合、明示的に定義しなければならない。データコントラクトは、データのシリアライズ方法を規定するものである。 データコントラクトは、DataContract 属性をクラスや構造体に付与することで定義される。サービスで使用される構造体メンバーには、DataMember 属性が付与されなければならない。そうすることで、その値がサービスとクライアント間で転送される。 サービスの通常の振る舞いと特定の操作は ServiceBehavior 属性と OperationBehavior 属性でそれぞれ制御される。ServiceBehavior 属性にはいくつかのプロパティがある。ConcurrencyMode プロパティは、サービスが同時並行して複数のクライアントに提供されるかどうかを示す。InstanceMode プロパティは、唯一のインスタンスで全要求に対応するのか、それとも要求毎に新たなインスタンスを生成するのか、あるいはセッション毎に生成するのかを指定する。
※この「WCFサービスの定義」の解説は、「Windows Communication Foundation」の解説の一部です。
「WCFサービスの定義」を含む「Windows Communication Foundation」の記事については、「Windows Communication Foundation」の概要を参照ください。
- WCFサービスの定義のページへのリンク