2012-02-26 18 views
1

私はシグネチャを持つWebサービスを持っている:C#で "webservice"にオプションのパラメータを送信する方法は?

[WebMethod(EnableSession = true)] 
public Box FetchBox(string boxId, string p1, string p2, string p3) 

私はjqueryのAJAXによって、このWebサービスを呼び出す:

$.ajax({ 
    url: "/WS/Ajaxify.asmx/FetchBox", 
    data: "{ 'boxId': '" + boxId + "' }", 
    dataType: "json", 
    type: "POST", 
    contentType: "application/json; charset=utf-8" 
}); 

私は後でP2にではなく、P1のみでFetchBox 1時間を呼び出したいですp1など。

多くの状況では、p1またはp2またはp3のいずれか、または パラメータを使用してFetchBoxメソッドを呼び出す必要があります。私は、システムがプラグインベースであり、プラグインが他のパラメータについて知らないので、すべてのパラメータを送信したくない。

c#4のオプションパラメータは、Webサービスでは機能しません。

params string []パラメータは、パラメータ名を知る必要があるため、ここでは適切ではありません。

+0

なぜパラメータ名を知る必要がありますか? p1、p2、またはp3とはどういう意味ですか? – BrokenGlass

+0

私は決定をするためにパラメータ名とその値を知る必要があります。 – ehsan

+0

あなたはまだ質問に答えていません - これの背後にはどのような論理がありますか? – BrokenGlass

答えて

3

SOAP Webサービスにオプションのパラメータを送信することはできません。 SOAPプロトコルには、オプションのパラメータの概念はありません。

また、ASMXサービスをまったく使用しないでください。これは、新しい開発に使用すべきではない従来の技術です。代わりにWCFを使用する必要があります。

関連する問題