サービスコントラクトにstring hoge プロパティを持ちたいと思った。
普通にやったらダメだった。
サービスコントラクト&データコントラクトのそれぞれのクラスを作成して,クライアント側から呼ぶ際に,データコントラクトを引数としてサービスコントラクト内のオペレーションコントラクトを実行。
メソッド用(サービスコントラクト)とプロパティ用(データコントラクト)を分けて作成するの面倒・・・・。
いや,そもそも分けた方が良いのかなー?とか思ってたらなんとサービスコントラクト(インターフェース)のプロパティのget,setにそれぞれ[OperationContract]を付加すればよいとのこと。
string hoge { [OperationContract]get; [OperationContract]set; }
みたいに。
そうすればhogeのgetメソッドとsetメソッドをクライアント側のプロキシで作成してくれるみたい。
まぁメソッドになっちゃうんですけど・・・・。
サービスコントラクト内にフィールドをプロパティとして持ちたいなーと思いますが,java互換とかなんかなー。どうなんかなー。
ちなみに,パラメータを取るコンストラクタをWCFでは使えないのが一番痛い。既定のコンストラクタしかクライアント側のサービス参照からは受け付けてくれない・・・。