次のように私の契約が見える場合:WCF Webサービスで戻り値のパラメータが終了するのを防ぐにはどうすればよいですか?
[OperationContract]
void DoSomething(int id, out string moreInfo);
これは、ように見える終わる:あなたは、Webサービス参照をインポートするとき
string DoSomething(int id);
。パラメータの順序の自動変換に影響を与えることは可能ですか?関数のシグネチャの冒頭にすべてのoutパラメータを見つけることは、すでに驚くべきことでしたが、それでも実行可能でしたが、voidメソッドがvoidメソッドであり続けることを望みます。またはこれはSOAPの制限ですか?
この例では、単一の 'out'パラメータを持つvoidメソッドは事実上、正しい戻り値を持つ非voidメソッドです。 'out'パラメータを定義すると、非出力バージョンはあなたに与えられないのですか? –
@AdamWebサービスの設計において、直交性は高くなっています。もともと私たちは価値を返すサービスと、価値のないサービスを持っていました。しかし、各サービスは状態を返すようにリファクタリングされました。追加のparamを強制することで、ビルドは自動的に失敗し、どこを修正するかを知ることができます。また、残りの契約に関係なく、最初のパラメータがステータスを含むout-paramであることを常に知っておくと便利です。 – Abel
私は実際には非常に驚いていて、WCFがその操作のプロキシをまったく生成できたことに感銘しました!最初に 'out'パラメータを使用する根拠は何ですか? – MattDavey