2011-08-23 2 views
2

int 배열 (int[]) 및 nullable int 배열 (int?[])을 매개 변수로받는 메서드가있는 ASP.NET 웹 서비스 (.asmx)가 있습니다. 또한 서비스 참조를 통해이 웹 서비스를 사용하기위한 테스트 웹 응용 프로그램이 있습니다..NET 웹 서비스에서 Int Of Array 대신 Int []를 사용하여 메서드 시그니처 사용/생성

문제는 웹 서비스 코드에서 뭔가를 바꿀 때마다 다시 컴파일하고 테스트 응용 프로그램에서 서비스 참조를 업데이트한다는 것입니다. 테스트 응용 프로그램의 웹 서비스 메서드에 대해 다른 유형의 매개 변수가 생성됩니다. 예를 들면 다음과 같습니다.

첫 번째 빌드 및 서비스 업데이트에서 Visual Studio가 테스트 응용 프로그램에서 생성하는 메서드 서명은

void MyMethod(int[] firstParam, int?[] secondParam)입니다.

그런 다음 몇 가지 사항을 변경하고 다시하고 다음과 같이하십시오.

void MyMethod(ArrayOfInt fistParam, ArrayOfInt1 secondParam)

(int[]int[]와 같고 ArrayOfInt1int?[]와 같습니다).

ArrayOfInt ArrayOfIntArrayOfInt1을 바 꾸었습니다. (이제 ArrayOfInt1int[]와 같고 ArrayOfIntint?[]과 동일합니다.)



실제로 원하는 것은 간단한 int[]int?[] 형식을 사용하는 것입니다. (몇 번이나 서비스 참조를 다시 컴파일하고 업데이트하더라도 상관 없습니다!) 이것을 어떻게 할 수 있습니까?

+0

아무도 이것에 대한 이유를 찾지 못했습니까? 이 어리석은 행동으로 아무도 화가 나지 않습니까? – Raphael

+1

ASP.NET (asmx) 웹 서비스 또는 WCF를 사용하고 있습니까? – CodingWithSpike

+0

WCF를 켜야하는 것 같습니다. – Seb

답변

0

wsdl.exe 도구를 사용하여 Visual Studio를 사용하는 대신 웹 서비스 프록시를 생성 해보십시오.

나를 위해이 작품!

+0

이것이 당신의 문제를 해결할 것이라고 생각하게 만드는 이유는 무엇입니까? 이 문제가 있었습니까 wsdl.exe 사용하여 해결 된? –

+0

예, wsdl.exe를 사용할 때 ArrayOfInt() 대신 int []를 사용할 수 있습니다. –

+0

괜찮 았지만 Visual Studio 내에서 솔루션을 찾고있었습니다. 아무도이 문제에 대한 해결책을 제시하지 않으면이 대답을 받아 들일 것입니다. 왜냐하면 Visual Studio에서는이 작업을 수행 할 수 없다고 생각하기 때문입니다. – Raphael

0

나는 이것이 오래되었다는 것을 알고 있지만, 나는 같은 문제를 다뤘다. 그 차이점은 서비스 참조가 아닌 웹 참조를 추가하는 것이 었습니다.

  1. 마우스 오른쪽 단추로 클릭 클릭 왼쪽
  2. 고급 버튼을 클릭>추가 서비스 참조
  3. 을 선택 추가 웹 참조 : VS 내

    , 다음을 수행 왼쪽 하단의 버튼

  4. URL과 참조 이름을 입력 한 다음 을 클릭하여 참조 추가

내 웹 참조에 int[] 매개 변수가있는 메소드가 올바르게 추가되었습니다.

편집 :Here은 설명하기 좋은 그림으로 더 좋은 답변입니다!

편집 2 :This answer은 기존 기술을 사용하지 않는 ArrayOfXXXList<XXX>에 치태를 제거한다, 그래서 윈 - 윈 지금까지 내가 걱정한다. 자, 금형 내에서이 작업을 수행하는 방법은 무엇입니까? 아니면 파일을 직접 편집하여 수행 할 수있는 작업입니까?

+0

나쁜 생각. "서비스 참조 추가"에서 콜렉션 유형을 지정하십시오. 'int []'를 매개 변수 유형으로 사용하기 위해 레거시 기술을 사용하는 방법으로 돌아가는 것은 거의 의미가 없습니다. –

+0

내 상황에 대해서는 이미 ASMX 파일이므로 "뒤로 거꾸로"가 아니라 - 돌아갈 길은 없습니다. OP는 ASMX 파일에 대해서도 이야기합니다. WCF의 혜택을 얻지 못한다면 왜 내가 걱정해야하는지 알지 못합니다. 더 필요하다면 ASMX를 처음 사용하지 않을 것입니다. :) –

+0

아니요, _service_는 ASMX입니다. _client_가 ASMX가 될 이유는 없습니다. –

관련 문제