2008-09-27 2 views
0

프로젝트에 유형을 공유하는 수많은 웹 서비스가 있습니다.WSDL.exe로 웹 서비스 프록시를 생성 할 때 다른 URL로 기본 설정

간단히하기 위해 두 개의 웹 서비스를 통해 보여줍니다.

WSDL/sharetypes http://MyServer/WebService1.asmxhttp://MyServer/WebService2.asmx /appsettingurlkey : WebServiceUrl/네임 스페이스 : MyNamespace에/아웃 : MyProxy http://MyServer/WebService.asmx

에서 http://MyServer/WebService.asmx webService2에서

WebService1을 나는 내가 사용하는이 두 서비스에 대한 프록시를 생성 할 때. cs

문제는 appsettingurlkey가 프록시 파일의 각 웹 서비스 에 대해 동일하다는 것입니다. 여러 개의 appsettingurlkey 매개 변수를 지정할 수 있기를 바랍니다. 이것이 어떻게 완성 되었습니까?/sharetypes 매개 변수를 사용할 수있게되었으므로 이라고 생각합니다. 웹 서비스를 식별 할 수 있도록 appsettingurlkey를 지정하기위한 솔루션이 있어야합니다.

wsdl.exe를 사용하여이 작업을 수행 할 수 없다면 무엇을 제안하겠습니까? 오히려 wsdl.exe가 출력하는 생성 된 코드를 업데이트하지 않고 웹 서비스의 각 인스턴스에 URL을 전달하는 전체 응용 프로그램을 통과하고 싶지 않습니다.

+0

그것은 주석에, 그래서 아무 대답도 없다 : 당신이 대신 WCF 클라이언트 코드를 생성 할 svcutil.exe에를 사용하지 않는 이유는

본인은 XML이 텍스트 상자에 잘 붙여하지 않았기 때문에 그것을 블로그했다 ? –

답변

3

생성 된 프록시 클래스는 부분 클래스이므로 내 솔루션은 명시 적으로 각 프록시에 대한 다른 설정을 읽는 다른 (생성되지 않은) 코드 파일에 고유 한 생성자를 추가하는 것입니다. WebServiceUrl : URL 대신에 오버로드 된 생성자 통과와 다른 부분 클래스를 만드는

+1

아, 생성 된 클래스가 부분적이라는 사실조차 알지 못했습니다. 정말 끝내주는 군. 그 점을 지적 해 주셔서 감사합니다! –

0

아,의 wsdl.exe에 다음과 같은 추가 매개 변수 내 문제 ...

WSDL/sharetypes http://MyServer/WebService1.asmxhttp://MyServer/WebService2.asmx/appsettingurlkey를 해결합니다/네임 스페이스 : MyNamespace에 /out:MyProxy.cs /appsettingurlkey : BaseSoapUrl/appsettingbaseurl : Web.config의이 BaseSoapUrl appSetting을 가지고 http://MyServer/

경우가 MyProxy.cs에서 http://MyServer/ 하위 문자열을 대체하는 것을 사용합니다 . appSetting이 없으면 wsdl.exe (예 : {BaseSoapUrl} /WebService1.asmx는 appSetting을 사용하거나 http://MyServer/WebService1.asmx은 appSetting을 사용하지 않을 때)에 제공된 경로를 사용합니다.

올바른 방향으로 나를 가리켜 주신 Rick Kierner에게 감사드립니다.