代码之家  ›  专栏  ›  技术社区  ›  Meirion Hughes

Fody.Costura干扰Caliburn.视图的微解析

  •  0
  • Meirion Hughes  · 技术社区  · 12 年前

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

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

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

    现在,当我使用Fody.Costura时,ViewModel类型首先被请求并通过IoC解析, 这意味着组件已打开包装并装载 。然而,CM从未要求IoC解析视图类型,我只是在屏幕上显示“找不到…的视图”消息。

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

    我想Caliburn.Micro有一个初步检查来查找类型,但当您使用Fody.Costura合并引用的程序集时,该检查失败。

    知道如何解决这个问题吗?

    更新:

    我将ILog调试器连接到Caliburn,使用Costura,我得到以下警告:

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

    然而,如上所述,我知道当我加载程序集以搜索NInject模块时,程序集被加载,并且我可以看到Module.Recorder.Views.RecorderView是注入绑定的。

    1 回复  |  直到 12 年前
        1
  •  1
  •   Community Mohan Dere    9 年前

    问题是我引用的程序集。我必须手动加载它们 SelectAssemblies()

    不幸的是,我使用了 accepted solution here ,从exe目录加载它们。

    我对上述问题的解决方案是从当前加载的程序集中显式加载引用的程序集, as answered here.