我有一个名为InversionOfControl
的项目。该项目有一个名为IOC
的类。它看起来像这样:
/// <summary>
/// This class is used to expose the unity container to the application.
/// </summary>
public class IOC
{
/// <summary>
/// The actual unity container for the app.
/// </summary>
public static IUnityContainer Container { get; set; }
}
我需要解决团结注射的所有项目都参考了这个课程。最近我开始收到此错误:
值不能为空。
参数名称:container
正常结算:
ITransmitModel transmitModel = IOC.Container.Resolve<ITransmitModel>();
当我尝试检查IOC.Container
时,监视窗口中的值为:
“InversionOfControl.dll”和“InversionOfControl.dll”中都存在“InversionOfControl.IOC”类型
我查看了输出文件夹,只有一个InversionOfControl.dll文件。 (我甚至清理了我的解决方案,并仔细检查了文件夹是否为空。然后我重建并再次检查只有一个。)
为什么它认为有两个名为InversionOfControl.dll的dll?
答案 0 :(得分:1)
检查在运行时加载哪个模块的方法是“Debug-&gt; Windows-&gt; Modules”并检查有问题的DLL的加载位置。确保您没有加载具有不同版本的2个程序集。
作为下一步,我会搜索具有此名称的所有文件,以查看是否存在可疑副本(“cd / d c:\&amp; dir / s / b InversionOfControl.dll”)。