WCF

Monday, 30 November 2009 14:00 by sakamoto

サービスコントラクトにstring hoge プロパティを持ちたいと思った。

普通にやったらダメだった。

サービスコントラクト&データコントラクトのそれぞれのクラスを作成して,クライアント側から呼ぶ際に,データコントラクトを引数としてサービスコントラクト内のオペレーションコントラクトを実行。

メソッド用(サービスコントラクト)とプロパティ用(データコントラクト)を分けて作成するの面倒・・・・。

いや,そもそも分けた方が良いのかなー?とか思ってたらなんとサービスコントラクト(インターフェース)のプロパティのget,setにそれぞれ[OperationContract]を付加すればよいとのこと。

string hoge { [OperationContract]get; [OperationContract]set; } 

みたいに。

そうすればhogeのgetメソッドとsetメソッドをクライアント側のプロキシで作成してくれるみたい。

まぁメソッドになっちゃうんですけど・・・・。

サービスコントラクト内にフィールドをプロパティとして持ちたいなーと思いますが,java互換とかなんかなー。どうなんかなー。

 

ちなみに,パラメータを取るコンストラクタをWCFでは使えないのが一番痛い。既定のコンストラクタしかクライアント側のサービス参照からは受け付けてくれない・・・。

 

Categories:   余談
Actions:   E-mail | Permalink | Comments (0) | Comment RSSRSS comment feed
Comments are closed