2010-07-07 3 views
2

현재 프로젝트의 데이터 수확기에서 작업 중입니다. 작동 방식은 기본적으로 데이터를 수집하는 다른 프로그램을 호출하고 해당 프로그램은 큐 정보 모음을 포함하는 데이터 구조를 반환합니다. 그런 다음 수확기가 데이터를 직렬화합니다. 실제로 데이터를 수집하는 프로그램은 다른 팀에서 유지 관리하며 최근에는 업그레이드를 수행하여 코드를 재구성하기로 결정했습니다. 호출하는 메서드는 여전히 같은 위치에 있지만 데이터 구조가 다른 어셈블리로 옮겨집니다 (코드는 동일하게 유지됩니다). 이것의 재미있는 부분은 우리가이 제품의 두 버전을 지금 당장 가지고 있다는 것입니다. 따라서 클라이언트 버전에 따라 필요한 데이터 구조가 두 개의 다른 어셈블리 중 하나에있을 수 있습니다. 나의 상사는 가능한 한 수확기 프로그램의 한 가지 버전만을 갖고 싶어합니다.두 어셈블리 중 하나에있을 수있는 클래스 참조

그래서, 내 질문은 : C# 및 .NET 3.5를 사용하여 런타임에 사용할 어셈블리를 선택하는 방법이 있습니까? 나는 반사를 사용할 수 있다고 생각하지만 컴파일 타임에 정상적으로 코드를 작성하고 다른 프로그램의 버전에 따라 런타임에 종속성을 해결할 수있는 방법이 있는지 알고 싶습니다.

답변

0

당신은 어댑터 (래퍼) 디자인 패턴을 사용하여 시도 할 수 있습니다.

.NET이 필요하지 않은 경우 참조 된 어셈블리를로드하지 않을 것이라고 생각하지만 잘못된 경우 항상 반사를 사용할 수 있습니다.

관련 문제