2015-01-15 2 views
0

배경을 구현하기 전에 WCF-모의 및 엔드 포인트를 구현 : 이미 다른 WCF 서비스와 WCF 서비스를 사용하는 응용 프로그램을 확장해야실제 서비스를

. 이러한 기존 서비스 중 하나가 새 WCF 서비스를 호출해야합니다. 이제는 실제 서비스를 구현하기 전에 향후 서비스를 조롱해야하며이 두 서비스 간의 연결을이 모의 서비스로 테스트해야합니다 (단위 테스트 아님). mock 서비스는 수신 된 매개 변수를 파일에 작성해야합니다.

목표 :이 의미

기존의 WCF 서비스의 엔드 포인트가 구현합니다 (설정에 일부 변경을 제외하고) 준비가되었습니다.

내 접근 방법 :

자신의 모의 서비스 (Blog post)를 구현하거나 이미 정의 된 인터페이스를 조롱 모의 프레임 워크 (WCFMock)를 사용합니다.

문제 :

모의 서비스의 호출이 서로 다른 모양과 내가 실제 서비스의 구현 후 엔드 포인트의 코드를 변경해야합니다.

내 질문 :

가 조롱 가짜 WCF 서비스 (실제 웹 호출없이) 또한 설정을 변경 한 후 실제 WCF 서비스와 함께 작동합니다 엔드 포인트를 구현 할 수 있습니까?

답변

1

예. WCF 서비스 클라이언트 호출의 중개자 역할을하는 클래스를 생성 한 다음 일부 값 (아마도 구성 값)에 따라 실제 클라이언트 또는 모의 서비스를로드해야합니다. 이렇게하면 코드의 종속성이 처리되므로 구현을 전환하기 위해 플래그를 변경해야합니다.

이 작업의 가장 큰 제약은 클라이언트가 구현할 수있는 서비스 인터페이스를 사용할 수 있어야한다는 것입니다. 당신의 추천에 대한

public class ServiceFacade : IMyWCFService 
{ 
    private IMyWCFService _clientImplementation; 

    public ServiceFacade() 
    { 
     _clientImplementation = (Settings.Default.UseMockService == true) ? new MockWCFServiceClient() : new MyWcfServiceClient(); 

    } 

    #region IMyWCFService implementation 

    public int MyServiceCall() 
    { 
     return _clientImplementation.MyServiceCall(); 
    } 

    #endregion 

} 
+0

감사를 다음과 같이

기본 생각이다. 멋진 솔루션입니다. –

+0

문제 없습니다. 또한 DIIS를 사용하고 있다면 app.config 파일을 통해 자동으로 PRISM에 의해 서비스 클래스 생성 및 삽입이 처리되므로 PRISM의 Dependency Injection via 구성이 자체적으로 제공됩니다. – toadflakz

관련 문제