2014-04-08 1 views
0

많은 WSDL과 참조 된 XSD가 디렉토리 구조에 있습니다. XSD의 일부 유형 (예 : 공통 메시지 헤더)은 모든 WSDL에서 공유됩니다. 각 WSDL에 대해 svcutil.exe를 실행하여 서비스에 대한 별도의 네임 스페이스를 가지며 형식을 사용하지만 헤더에 일반적인 처리 메커니즘을 갖고 싶기 때문에 공용 유형, 즉 헤더를 재사용하고 싶습니다. 모든 헤더 유형이 다른 네임 스페이스에 있으면 유형이 다르며 공통 처리가 어렵습니다.Svcutil.exe - 많은 wsdl에 대한 일반적인 유형을 처리하는 방법?

누군가이 아이디어를 어떻게 해결할 수 있습니까?

편집 : XmlSerializer를 사용하고 있으므로 svcutil.exe의/r 스위치를 사용할 수 없습니다.

답변

0

svcutil이 지원하는 접근법 중 하나는/reference (/ r) 스위치를 사용하는 것입니다.

공통 클래스를 생성하고 (해당 서비스 중 하나를 사용하여) 별도의 어셈블리로 컴파일 한 다음, 다른 서비스에 대한 svcutil의 후속 호출에서 해당 어셈블리를 참조로 사용할 수 있습니다.

유용한 참조는 here 일 수 있습니다. 명령 행 참조는 here입니다.

+0

불행히도, 나는 Java와의 상호 운용성이 필요하기 때문에 DataContractSerializer가없는 XmlSerializer를 사용하고 있습니다. 그러나 아이디어에 감사드립니다. 나는/r 매개 변수를 알지 못했습니다. – Mikee

+0

@Mikee, 또 다른 접근법은 WSDL을 다른 모든 WSDL 위에 구축하는 것입니다. 즉, wsdl : import를 사용하여 다른 것들을 참조하고 그 중 하나를 svcutil에 공급합니다. 당신이 제공 한 세부 사항을 기반으로 작동 여부를 많이 말할 수는 없습니다. 물론, WSDL간에 재사용되는 XSD가 있다면 작동하는 것이 보장됩니다. –