2008-08-29 6 views
3

가변적 인 변수를 전달할 웹 서비스를 만들려고합니다.웹 서비스에 다양한 양의 매개 변수를 전달하는 방법

이 작업을 수행 할 수 있습니까?

기본적으로 가능한 모든 매개 변수를 전달하는 대신 설정 값만 전달하고 웹 서비스에 설정된 기본값을 사용합니다.

다음은 보내려는 XML의 예입니다. 필요한 반환 값에 따라 알 수없는 양의 함수를 보냈습니다.

<?xml version="1.0" encoding="utf-8"?> 
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soap:Body> 
    <WebMethod xmlns="http://tempuri.org/"> 
     <domains> 
     <function1> 
     <title>Some Title</title> 
     <type>25</type> 
     </function1> 
    <function2 /> 
    <function3> 
     <param>13</param> 
    </function3> 
     </domains> 
    </WebMethod> 
    </soap:Body> 
</soap:Envelope> 

이 방법이 효과가 있습니까? 그렇지 않습니다.

답변

4

필자는이를 위해 구체화 된 함수 대신 xml 문서를 전달합니다.

귀하의 예에서 웹 서비스가 새어 나옵니다. 소비자는이 인터페이스와 웹 서비스 구현에 대해 너무 많이 알고 있어야합니다.

XML 문서를 만든 다음 XSD와 연결합니다. 그렇게하면 웹 서비스에 대한 입력을 미리 확인할 수 있습니다.

는 테스트 웹 서비스에 대한 이러한

IBM Developer ASP.NET Forum

나는 또한이를 사용하는 것이 좋습니다 봐 내가 littlegeek에 동의 WSStudio

0

가변 길이 배열을 매개 변수로 간단히 전달할 수 있습니다.

0

Array의 개념이 마음에 들지 않는다면 (이것은 Konrad의 답이 아닙니다. 다른 param 유형이있을 수 있습니다) 복잡한 객체 (즉, 자신이 만든 객체)를 전달할 수 있습니다. 단점은 다음과 같이 할 수 없다는 것입니다 테스트는 ASMX 페이지를 사용하지만 코드에서이 모든 작업을 수행해야합니다 (특히 나쁜 경우는 아닙니다).

관련 문제