PRISM Unity RegisterType失败

时间:2018-11-11 07:32:23

标签: c# unity-container registration

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

有一个界面,看起来像这样

using System;

namespace MyNameSpace
{
    public interface IMyAnswer
    {
        Guid GUID { get; set; }

        dynamic Answer { get; set; }
    }
}

并且有一个实现该接口的类:

using System;

namespace MyNameSpace
{
    internal class MyAnswer: IMyAnswer
    {
        public Guid GUID { get; set; }

        public dynamic Answer { get; set; }
    }
}

我正在尝试注册这样的类型

container.RegisterType<IMyAnswer , MyAnswer>();

容器的类型为IUnityContainer。

抛出System.TypeLoadException'无法加载IMyAnswer类型'

我删除了该行,一切都像以前一样工作。我再次写了这一行,再次发生了相同的异常。我再次删除了该行,但是随后的注册却抛出了相同的异常,即使之前没有。

有人可以在这里帮助我吗?

添加:

接口与类位于不同的项目中。在有多个其他注册的情况下,现在也不是问题。

包含接口的项目/ dll版本在错误事件中被提及为1.0.0.0。我不知道是文件版本还是程序集版本。所以我将两个数字都更改为不同的值。我删除了引用,清理并使用接口构建了dll,再次添加了引用。清理并重建包含该类的dll。两次构建均成功。我运行了该应用程序,并且错误是相同的。现在有趣的部分是,错误中提到的版本仍然是1.0.0.0。

是否有可能在所有构建中都没有任何改变?

添加2:

假定包含该接口的dll的名称为MyInterfaces.dll。记录仪指出:

C:\ Path \ MyInterfaces.dll'。找不到或打开PDB文件

pdb文件确实存在于C:\ Path中。对文件夹或文件本身都没有读写限制。

解决方案: 原来是建筑问题。解决方案在这里描述: Visual Studio Build seems not to use current projects

0 个答案:

没有答案