我正在使用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