Fody.科斯特拉干扰了卡布恩.视图的微观解析

本文关键字:视图 微观 布恩 斯特拉 干扰 Fody | 更新日期: 2023-09-27 17:49:53

我有一个窗口注入视图通过Caliburn.Micro;

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

现在,没有福迪。现在我可以看到我的ViewModel是通过IoC容器被请求的。不久之后(当控件可以看到时),CM向IoC请求View类。

现在,当我使用Fody。首先请求ViewModel类型并通过IoC解析,这意味着程序集已经解包并加载。然而,CM从来没有要求IoC解析视图类型,我只是有"找不到视图"。的信息。

所以,问题是,虽然视图和ViewModel类型可以通过IoC解决,但Caliburn Micro在使用Costura时甚至不尝试获取视图。

我猜是Caliburn。Micro有一个查找类型的初步检查,当您使用Fody时,它会失败。来合并引用的程序集。

有办法解决吗?

更新:

我附加了一个ILog调试器到Caliburn和Costura,我得到以下警告:

警告:未找到视图。搜索:Module.Recorder.Views。RecorderView Module.Recorder.ViewModels.RecorderView。

然而,正如前面提到的,我知道程序集是加载的,因为我加载它来搜索NInject模块,我可以看到Module.Recorder.Views.RecorderView是注入绑定的。

Fody.科斯特拉干扰了卡布恩.视图的微观解析

问题是我引用的程序集。我必须在SelectAssemblies()

中手动加载它们

不幸的是,我在这里使用了公认的解决方案,它从exe目录加载它们。

我对上述问题的解决方案是从当前加载的程序集中显式加载引用程序集,如下所述。