2014-03-13 2 views
0

Caliburn.Micro를 통해 주입 된 뷰가있는 창이 있습니다. Fody.Costura Caliburn.Micro 간섭을 방지합니다.

<ContentControl cal:View.Model="{Binding ViewModelObject}"/> 

지금, Fody.Costura없이 내 뷰 모델은 IoC 컨테이너를 통해 요청되고 있음을 볼 수 있습니다. 잠시 후 (컨트롤을 볼 수있을 때) CM은 IoC에 View 클래스를 요청합니다.

이제 Fody.Costura를 사용할 때 ViewModel 유형이 먼저 요청되고 IOC ()를 통해 해결되었으므로 어셈블리가 언팩되고로드됨을 나타냅니다.. 그러나 CM은 IoC에 View 유형을 확인하도록 요청하지 않으며 내 화면에 "...에 대한보기를 찾을 수 없습니다"라는 메시지 만 표시합니다.

그래서 IoC를 통해 View 및 ViewModel 유형을 확인할 수 있지만 Caliburn Micro는 Costura를 사용할 때보기를 얻지 않으려 고합니다.

Caliburn.Micro는 형식을 찾기 위해 예비 검사를하고 있으며, Fody.Costura를 사용하여 참조 된 어셈블리를 병합 할 때 실패합니다.

어떻게 해결할 수 있습니까?

는 업데이트 :

나는 Caliburn에 ILOG 디버거를 부착 Costura와 나는 다음과 같은 경고 얻을 :

이 WARN :보기 찾을 수 없습니다. 검색된 항목 : Module.Recorder.Views.RecorderView, Module.Recorder.ViewModels.RecorderView.

그러나, 나는 Ninject에 모듈을 검색로드로 어셈블리가로드 알고, 나는 Module.Recorder.Views.RecorderView을 볼 수 있습니다 언급 한 바와 같이 주입 바인딩입니다.

+1

당신은 바인더 로그에 보일 것입니다, 현재로드 된 어셈블리에서 참조 된 어셈블리를로드하는 것이 었습니다. 이것은 단서를 줄 수 있습니다. – cvbarros

+0

구현 된 ILog를 추가했으며 발견 할 수 없다고 말합니다. 분명히 명명 된 유형에 대해 IoC에 요청하는 것이 아니라 어셈블리를 찾고 있지만 찾지 못했습니다. –

답변

1

문제는 내 참조 된 어셈블리입니다. 수동으로로드해야합니다. SelectAssemblies()

불행히도 을 사용하여 EXE 디렉토리에서로드했습니다. 유형이 발견되지 않는 이유를 확인하기 위해 fuslogvw :

위의 문제에 대한 나의 해결책은 명시 적으로 as answered here.

관련 문제