私はC#でWCFを構築しており、クライアントは同時にそれを消費しています。何らかの理由で、intを返すメソッドを取得するのに問題があります。ここに私の契約は次のとおりです。私は、Visual Studioを使用していWCFがintを返さない
public class MData : IMData
{
public String HelloWorld()
{
return "Hello World";
}
public int ReturnAnInt()
{
return 5;
}
}
、およびクライアントのために、私は、Webリファレンスとして、このWCFをインポート:私はそれを実装しているのはここ
[ServiceContract]
public interface IMData
{
[OperationContract]
int ReturnAnInt();
[OperationContract]
String HelloWorld();
}
です。 MDataのインスタンスを宣言してHelloWorldを呼び出す何らかの理由で、問題はありませんが、ReturnAnIntを呼び出すときにコンパイルエラーが発生します。
MData m = new MData();
String helloWorld = m.HelloWorld();
int result = m.ReturnAnInt();
私はReturnAnIntで取得エラーはありません: Visual Studioが期待しているかを見るためにオーバーそれではIマウス 「メソッドの何過負荷 『ReturnAnInt』 0引数を取り」、そして、それは方法が見えるべきであると述べています以下のように:
void MData.ReturnAnInt(out int ReturnAnIntResult, out bool ReturnAnIntResultSpecified)
私は今、時間このにわたり壁に頭を強打されているとGoogleで何を見つけることができ、そしてそれは私の同僚は、同様に困惑しています。定義に含まれていないパラメータを2つ追加して戻り値の型を変更したのはなぜですか?どんな助けでも大歓迎です。私が助けになるような情報を残しておけば、お詫び申し上げます。
WCFは本当に 'out'パラメータをサポートしていますか? – abatishchev
はい、それは本当に質問についてです。この問題で説明されている問題は、WCF C#コードでは 'out'パラメータまたはオプションの' int'sが指定されていませんが、Web参照コードジェネレータがそれを作成する方法です。これは機能します。しかし、 'int ReturnAnInt(out int otherInt);'のようなWCFサービスを定義することができ、それはサービス参照とWeb参照の両方としてアクセスできます。生成されるWSDLは、複数の要素を持つレスポンスオブジェクトなので、他のクライアント言語でも使用できるものを生成する必要があります。 –
ありがとう、あなたの答えは、彼らは非常に有用だった!私はそれをサービスリファレンスとしてインポートし、私の問題は解決しました:) –