2011-01-30 2 views
1

저는 App1.ClassA가있는 문제에 직면하고 있습니다. 자체적으로 App2.ClassB를 가져와야하는 App2.ClassB 가져 오기가 속성에 있습니다. App1과 App2는 2 개의 다른 xaps입니다.MEF에서 수출입의 종속성 체인은 어떻게 평가됩니까?

App1.ClassA는 초기화 코드에서 ComponentInitializer.SatisfyImports (this)를 호출합니다. 그러나 이러한 수입을 만족시키는 체인은 어셈블리를 가로 지르지 않는 것처럼 보입니다.

ClassB에서 ComponentInitializer를 지정할 수 없습니다. 자체적으로 내보내므로 (MEF에서 오류가 발생 함). 그러나이 호출을하지 않으면 ClassC 속성으로 ClassC를 가져 오지 못합니다.

예상되는 동작입니까, 아니면 ClassC가로드되지 않아 다른 버그가 표시됩니까?

는이 게시물의 -http 통해 갔다 : //forums.silverlight.net/forums/t/202811.aspx하지만 차이가 나는 미리

내 시나리오에서 라이트 XAP을 통해

감사를 교차하고 있다고 할 수있다

답변

2

난 내 시나리오 기본적으로

에 라이트 XAP이 교차하고, ComponentInitializer현재 XAP에서만 부품을 찾을 수 있습니다. override this default host configuration으로 전화 하시려면 CompositionHost.Initialize으로 전화하십시오.

0

xap 경계를 넘을 때에도 수입 해결 체인이 존중되었습니다. 어셈블리 수준에서 작동하고 어셈블리가 사용 가능할 때까지는 종속성 체인의 모든 가져 오기를 해결할 것이므로 xap 경계가 xap에서도 문제가되지 않는다고 생각합니다.

내가 실수 한 것은 클래스 인스턴스화 중에 가져 오기가 해결되지 않았다는 것을 깨닫지 못했기 때문입니다. 따라서 해결 된 요소는 생성자에서 사용할 수 없습니다. IPartInitialized Notification에 연결하고이 이벤트가 발생할 때 조치를 취해야했습니다.

나는 이것을 표창을 향상시키지 않으면 서 동일한 문제에 직면 한 모든 사람들을 안내하는 올바른 대답으로 표시했습니다.

관련 문제