2012-02-26 3 views
1

는 내가 서명 웹 서비스가 : 내가하여이 웹 서비스를 호출C#에서 "webservice"에 선택적 매개 변수를 보내는 방법은 무엇입니까?

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

을 JQuery와 아약스 :

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

나중에 P2로하지만, 단지 P1과 FetchBox 한 번 전화를 걸 p1 등등.

많은 상황에서 p1 또는 p2 또는 p3 또는 매개 변수 중 하나를 사용하여 FetchBox 메소드를 호출해야합니다. 시스템이 플러그인 기반이고 플러그인이 다른 매개 변수에 대해 모르기 때문에 모든 매개 변수를 보내고 싶지 않습니다.

C# 4의 선택적 매개 변수가 웹 서비스에서 작동하지 않습니다.

또한 params string [] 매개 변수는 매개 변수 이름을 알아야하기 때문에 여기에 적합하지 않습니다.

+0

왜 매개 변수 이름을 알아야합니까? p1, p2 또는 p3은 무엇을 의미합니까? – BrokenGlass

+0

나는 결정을 내리기 위해 매개 변수 이름과 그 값을 알아야합니다. – ehsan

+0

아직 답을 얻지 못했습니다.이 논리 뒤에 어떤 논리가 있습니까? – BrokenGlass

답변

3

SOAP 웹 서비스에 선택적 매개 변수를 보낼 수 없습니다. SOAP 프로토콜에는 선택적 매개 변수의 개념이 없습니다.

또한 ASMX 서비스를 전혀 사용하지 않아야합니다. 이것은 새로운 개발에 사용되어서는 안되는 레거시 기술입니다. 대신 WCF를 사용해야합니다.

관련 문제