2012-07-27 1 views
1

웹 서비스가 새로운데 다른 회사의 외부 서비스를 호출하여 C# WCF 서비스를 개발하고 있습니다 (예 : 이름, 주소, 전화 등),이 부분은 지금까지 잘 작동합니다..NET C# 응용 프로그램에 유사한 웹 서비스 추가

외부 서비스는 표준 XML 스키마를 기반으로하며 다른 회사는 동일한 이름 스키마를 사용하여 동일한 XML 스키마에서 곧 동일한 서비스를 생성하고 동일한 유형의 XML 파일을 반환합니다.

첫 번째 질문은이 첫 번째 구현을 완료 한 후에 다른 외부 회사 서비스를 "동적으로"추가하거나 URL/포트 정보 등을 추가하는 방법이 있거나 또는 각각을 삽입해야한다는 것입니다 수동으로 내부 서비스 프로젝트에서 서비스 참조로 수동으로 추가 한 다음 새 서비스를 추가하고 컴파일하고 다시 배포해야합니까?

내 두 번째 질문은 데이터 계약/회원과 관련이 있습니다. 제 생각에 그들이 동일한 XML 파일을 반환하더라도 데이터 계약/멤버가 다르다는 것은 사실입니까? 그래서 나는 각각의 새로운 외부 회사에 대한 데이터 계약에서 필요한 정보를 읽을 수있는 특정 코드를 만들어야 할 것입니까? 이것이 사실이라면, 원시 XML을 읽는 일반적인 코드를 만드는 것이 최선의 선택입니까?

답변

1

C#은 컴파일 된 언어이지만 MEF를 통해 플러그인 아키텍처를 지원합니다. 이것을 사용하여 각 소스에 대해 작은 플러그인 .dll을 추가 할 수 있습니다.

당신이 필요로하는 것은 각각의 소스에 대한 연결 세부 정보를 포함하는 구성 목록과이를 동적으로 연결하는 구성 목록 일 가능성이 높습니다. 이는 동일한 스키마를 사용하는 경우에만 작동하므로 제공하는 객체가 모든 소스에 대해 동일하게 직렬화됩니다. 물론 구성을 사용하여 코드를 통해 동적으로 프록시를 인스턴스화해야합니다.

두 번째 질문에 뭔가를 추가해야합니다. 계약을 정의하는 한 실제로 오브젝트가 다른지 여부는 중요하지 않습니다. 마지막에 신경 쓰는 것은 XML이 제공하는 것이며 표현을 사용하여 연결할 수 있습니다. 실제로 계약을 .wsdl 문서로 생성 할 수 있습니다. 그러면 각 서비스 구현자는 도메인 객체를 생성 할 수 있습니다. 반면에 계약을 "소유하고있는"사람이 아닌 경우 일부 소식통이 약간 다르게 결정하기 때문에 두통이 생길 수 있습니다. 바라기를 그것은 당신의 시나리오가 아닙니다.

행운을 빈다. :)

+0

고맙습니다. 많은 도움이되는 정보를 보내 주셔서 감사합니다. – user1558528

+0

@ user1558528 당신을 가장 환영합니다.보너스 정보를 추가했습니다. :) – Mithon

0

내 첫 번째 질문은 내가 첫 번째 구현을 완료 한 후, 등 자신의 URL/포트의 정보/

을 가진, "동적"다른 외부 기업 서비스를 추가 할 수있는 방법이 있다는 것입니다

불행하게도 네, 당신은 추가 서비스를 컴파일하고

내 두 번째 질문은 데이터 계약/회원들과 관련 될 때마다 배포합니다, 나의 이해는 그들이이 같은 XML 파일을 반환하는 경우에도 데이터 계약/회원은 다를 것입니다. 그게 사실이야?

모든 서비스를 자동 생성하면 다른 계약이 생성됩니다. 자신의 클래스를 만들고 반사 및 확장 메서드를 사용하여 외부 클래스를 변환하는 방법에 대해 생각해 보겠습니다.

+0

답장을 보내 주셔서 감사합니다! – user1558528

관련 문제