2011-09-28 5 views
0

좋아요, 제 3 자 라이브러리를 사용해야하고 클래스가 인터페이스를 구현하지 않아서 결과 코드가 단위 테스트하기 어렵습니다 (예 : 코드를 종속성에서 분리 할 수 ​​없음). 그들의 데이터베이스는 데이터베이스에 의존하며 다른 데이터베이스는 누가 무엇을 알고 있는지).C#의 작곡/위임

내 솔루션 - 타사 클래스를 동일한 인터페이스를 갖고 제 3 자 클래스의 인스턴스를 포함하는 자체 클래스에 랩핑하십시오. 지금까지는 충분히 쉽습니다.

질문 : 기존 (제 3 자) 클래스에서 해당 인터페이스를 자동으로 추출 할 수있는 방법이 있습니까? 수작업으로하면 많은 보일러 플레이트 코드를 작성하게 될 것 같습니다.

+0

이 질문을보십시오 ... http://stackoverflow.com/questions/3564181/code-generator-for-wrapper-classes –

답변

0

정확한 기능을하는 도구에 대해 모르겠다. 그러나, 내가 할 방법은 이것입니다. 반사경을 가져 와서 제 3 자 구성 요소를 리버스 엔지니어링하십시오. 코드를 가져 와서 메소드 시그니처에 "부셔 버리십시오". 그런 다음 약간의 미세 조정 만하면 인터페이스가 있습니다. 완전히 "보일러없는"것은 아니지만 많은 작업을 제거합니다.