未加载C#PRISM Unity DI模块

时间:2018-11-08 20:24:05

标签: c# dependency-injection unity-container prism prism-6

我正在使用C#.Net 4.7.2和PRISM Unity 6.2.0

由于几个小时明确地不再识别一个dll。文件夹的路径正确。该文件夹中包含dll,其中包含从IModule派生的类。

bootstrapper类中完全相同的例程适用于应识别的任何其他dll,也确实适用于该特定dll。我什至没有更改过dll。

通过记录器将每条消息写入输出窗口的方式。甚至没有提到此特定dll的文件夹路径或文件名。

未将模块配置为按需加载(这是应用程序的重要组成部分)。完全没有引用来警告构建成功而没有任何警告或错误。

有人知道吗,怎么了?

非常感谢您!

编辑: 不能识别的dll不是问题。通过在另一个dll中注册类型会发生问题。

注册看起来像这样

container.RegisterType<IMyInterface , MyClass>( "FancyName" );

容器是一个IUnityContainer,它可以正常工作。其他注册工作正常。

界面看起来像这样

public interface IMyInterface
{
    void InitializeComponent();
}

班级看起来像这样

public partial class MyClass: Page, IMyClass
{
    public MyClass()
    {
        InitializeComponent();
    }
}

Page 是System.Windows.Controls.Page

DiagnosticTools的事件窗口显示以下异常:

引发的异常:Prism.Wpf.dll中的“ System.TypeLoadException”(程序集“ MyAssembly的类型” MyNameSpace.IMyInterface”,版本= 1.0.0.0,区域性=中性,PublicKeyToken =空”无法加载。“)

请问有人可以帮忙吗?

0 个答案:

没有答案