2016-08-30 4 views
-2

나는의 WebMethod에서 int 선택적 매개 변수를 전달하고 있지만C#을 사용하여 int 매개 변수를 webmethod에 전달하는 방법은 무엇입니까?

을 얻고있다

Cannot convert to System.Int32.'

내 코드는 다음과 같습니다

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

당신은 나에게 문제가 어디 있는지 알려, 그리고 내가 무엇을 주시겠습니까 있어야 할 곳에 없는?

+0

어떻게이 방법을 불렀다? –

+0

코드 공유를 시도하십시오. –

답변

0

편집 :

바로 웹 서비스에서 선택적 매개 변수를 선언 할 수 없습니다. 당신이 할 수있는 일

는 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 파일이며 이것은 test webmethod입니다. 우리는 직접 호출합니다. 확인해 볼 수 있습니다.이 메서드 만 썼고 직접 호출했습니다 .fyi : asmx 파일을 만들고 위의 코드를 복사하고 해당 webservice를 실행하면 얻을 수 있습니다. 문제, 그리고 만약 int의 자리에서 문자열을 전달한다면, 정상적으로 작동합니다. . 당신이 정말로 내게 알려주는 것보다 다른 해결책이 있다면, 내 분석에 따르면, 우리는 웹 서비스에서 선택적 매개 변수를 전달할 수 없다 .. –

관련 문제