我有一个窗口,通过Caliburn.Micro注入视图;
<ContentControl cal:View.Model="{Binding ViewModelObject}"/>
现在,没有Fody.Costura我可以看到我的ViewModel是通过IoC容器请求的。不久之后(当时可以看到控件),CM向IoC请求View类。
现在,当我使用Fody.Costura时,首先请求并通过IoC解析ViewModel类型,意味着程序集已经解压缩并加载。但是,CM从不要求IoC解析View类型,而我只是让#34;找不到...&#34;我屏幕上的消息。
所以,问题是虽然可以通过IoC解析View和ViewModel类型,但Caliburn Micro选择在我使用Costura时甚至不尝试获取View。
我认为Caliburn.Micro有一个初步检查来查找类型,当你使用Fody.Costura来合并引用的程序集时,它会失败。
知道如何解决这个问题吗?
更新:
我将一个ILog调试器附加到Caliburn并且使用Costura我得到以下警告:
警告:找不到视图。搜索:Module.Recorder.Views.RecorderView,Module.Recorder.ViewModels.RecorderView。
但是,如上所述我知道程序集已加载,因为我加载它来搜索NInject模块,我可以看到Module.Recorder.Views.RecorderView是注入绑定的。
答案 0 :(得分:1)
问题是我引用的装配体。我必须在SelectAssemblies()
不幸的是,我使用的是accepted solution here,它从exe目录加载它们。
我对上述问题的解决方案是从当前加载的程序集中显式加载引用的程序集as answered here.