2012-10-05 2 views
1

기본적으로 우리는 가지고있는 제품 유형을 사용하는 팩토리 메서드가있는 클래스를 가지고 있으며이 제품을 특별히 처리 할 수있는 IProfileService 구현을 반환합니다. 특정 제품을 설치할 때 설치되는 다른 DLL에 IProfileService의 다른 구현을 구현할 수 있도록 MEF를 사용하고 싶다면 좋은 접근 방법이 무엇일까요?MEF를 사용하여 팩토리 만들기

내 첫 번째 생각은 MetaData를 사용하여 어떤 제품을 처리하는지 설명하고 내 공장 메서드에서 LINQ 쿼리를 사용하여 전달 된 제품을 MetaData와 비교하는 것입니다. 이것이 좋은 것처럼 들리니, 아니면 더 좋은 방법이 있습니까?

답변

1

나는 접근 방식이 잘 동작 할 것이라고 생각합니다. 나는 더 나은 다른 방법을 생각할 수 없다.

이 접근법과 함께 사용할 수있는 기술은 지연로드입니다. MEF의 this great article을 참조하십시오. 내보내기에 Lazy<T>을 사용하면 IProfileService 객체가 필요할 때까지 생성되지 않습니다.

+0

대단히 감사합니다. – twreid

+0

또한 내가 읽은 최고의 MEF 중 하나 인 그 기사에 감사드립니다. – twreid

관련 문제