다음과 같은 시나리오가 있습니다.웹 서비스 클라이언트와 매핑 엔터티의 인터페이스
일부 엔티티 MyEntityDTO를 노출하는 WCF 서비스 (MyService)가 있습니다. 클라이언트 측에서는 클라이언트 측 구성 요소에 전달되는 IMyServiceClient 인터페이스를 작성하여 기본 구현에서 MyEntityDTO를 요청할 수 있습니다. 또한 이제 일부 MockedMyServiceClient : IMyServiceClient를 사용하여 클라이언트 측 유닛 테스트를 실행할 수 있습니다. 지금까지 좋은 것 같습니다.
이제 실제 MyRealWCFServiceClient : IMyServiceClient를 만들었습니다. IMyServiceClient는 기본적으로 Visual Studio에서 만든 WCF 서비스 참조를 둘러싼 것입니다.
한 가지 문제는 WCF 서비스 참조가 완전히 다른 MyEntityDTO를 반환하므로 서비스 참조 엔터티 형식에서 IMyServiceClient에서 반환되는 MyEntityDTO 형식으로 매핑해야한다는 것입니다. 나는 이것을 위해 AutoMapper를 사용할 수있다.
하지만 여기에 가장 큰 문제가 있습니다. 내 프로젝트의 일부 다른 응용 프로그램에서 MyRealWCFServiceClient를 재사용하고 싶습니다. 이러한 각 응용 프로그램에 자체 DTO 형식의 자체 WCF 서비스 참조가 있으면 현재 서비스 참조의 DTO 유형을 모두 전달하고 일부 일반적인 리플렉션을 사용하여 AutoMapper에 일반 형식을 삽입해야합니다. 무슨 엉망이 ...
하지만 공통 WCF 참조를 수집 할 수있는 MyRealWCFServiceClients는 공통된 라이브러리에서 MyRealWCFServiceClients를 래핑하므로 모든 MyRealWCFServiceClients는 알려진 일반적인 WCF 참조 만 사용합니다.
서비스 참조를위한 공통 라이브러리를 만드는 것이 좋습니다. 이것에 대한 더 나은 해결책이 있습니까?
"WCF 서비스 참조가 완전히 다른 종류의 MyEntityDTO를 반환합니다"라는 것이 정확히 무엇을 의미합니까? MyEntityDTO가 VS 프록시 생성에 의해 생성 된 유형이 아닙니까? –