2016-08-30 10 views
-2

私はWebMethod属性でintオプションのパラメータを渡していますが、私はC#を使用してint型のオプションパラメータをwebmethodに渡す方法は?

を取得しています

Cannot convert to System.Int32.'

私のコードは次のとおりです。

[WebMethod] 
public string Test([Optional] int ID) 
{ 
    return "Test"; 
} 

あなたは私が問題どこにあることを知っている、と私は何をしてくださいでき行方不明?

+0

? –

+0

コードを共有してみてください。 –

答えて

0

EDIT:

直接Webサービスにオプションのパラメータを宣言することはできません。 MessageNameに属性を使用してメソッドのオーバーロードされて何ができる

[WebMethod(Messagename="Test1")] 
public string Test() 
{ 
    return "Test"; 
} 

[WebMethod(MessageName="Test2")] 
public string Test(int ID) 
{ 
    return "Test " + ID; 
} 

しかしこれは単なる回避策です。

(唯一のプリミティブ型の場合)も可能:あなたは、このメソッドを呼び出した方法

[WebMethod] 
public string Test() 
{ 
    // You can grab the ID as optional parameter from the request 
    int optionalID = 0; 
    Int32.TryParse(this.Context.Request["optionalID"], out optionalID); 

    return "Test " + optionalID; 
} 
+0

私もこれを使用し、このエラーが発生しています:System.ArgumentException:System.Int32に変換できません。 パラメータ名:type ---> System.FormatException:入力文字列の形式が正しくありませんでした。 –

+0

@vipinsinghalメソッドを呼び出す場所にコードを追加できますか?あなたの呼び出しパラメータに何か問題があるようです。 – DeveloperExceptionError

+0

これはasmxファイルですが、これはテスト用のwebmethodです。直接呼び出すことができます。私はこのメソッドを書いて、直接呼び出します.fyi:asmxファイルを作成し、上記のコードをコピーしてwebserviceを実行すると、 intの場所に文字列を渡すと、うまくいきます。あなたが実際に私の分析によると、私たちはWebサービスで任意のパラメータを渡すことはできません.. –

関連する問題