我有一个通过 Caliburn.Micro 注入视图的窗口;
<ContentControl cal:View.Model="{Binding ViewModelObject}"/>
现在,没有 Fody.Costura,我可以看到我的 ViewModel 是通过 IoC 容器请求的。不久之后(此时可以看到控件),CM 向 IoC 请求 View 类。
现在,当我使用 Fody.Costura 时,首先通过 IoC 请求和解析 ViewModel 类型,这意味着程序集已被解包和加载。但是,CM 从不要求 IoC 解析视图类型,而我的屏幕上只是显示“无法找到...的视图”消息。
所以,问题在于,虽然 View 和 ViewModel 类型可以通过 IoC 解决,但当我使用 Costura 时,Caliburn Micro 甚至选择不尝试获取 View。
我认为 Caliburn.Micro 进行了初步检查以查找类型,但当您使用 Fody.Costura 合并引用的程序集时该检查失败。
知道如何解决吗?
更新:
我将一个 ILog 调试器附加到 Caliburn 并使用 Costura 我收到以下警告:
警告:未找到视图。搜索:Module.Recorder.Views.RecorderView、Module.Recorder.ViewModels.RecorderView。
但是,如前所述,我知道程序集在我加载它以搜索 NInject 模块时已加载,并且我可以看到 Module.Recorder.Views.RecorderView 是注入绑定的。