类型';InversionOfControl.IOC';两者都存在';InversionOfContr

本文关键字:存在 InversionOfContr 两者都 InversionOfControl 类型 IOC | 更新日期: 2023-09-27 18:28:15

我有一个名为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; }
}

我所有需要解决统一注入的项目都引用了这个类。最近我开始得到这个错误:

值不能为null
参数名称:容器

在正常分辨率上:

ITransmitModel transmitModel = IOC.Container.Resolve<ITransmitModel>();

当我尝试检查IOC.Container时,观察窗口中的值为:

类型"InversionOfControl.IOC"同时存在于"InversionOfControl.dll"answers"Inversion OfControl.dll"中

我查看了我的输出文件夹,只有一个InversionOfControl.dll文件。(我甚至清理了我的解决方案,并再次检查文件夹是否为空。然后我重建并再次检查只有一个。)

为什么它认为有两个名为InversionOfControl.dll的dll?

类型';InversionOfControl.IOC';两者都存在';InversionOfContr

检查运行时加载了什么模块的方法是"Debug->Windows->Modules",并检查有问题的DLL是从哪里加载的。请确保没有加载具有不同版本的2个程序集。

作为下一步,我将搜索具有此名称的所有文件,以查看是否存在可疑副本("cd/d c:''amp;dir/s/b InversionOfControl.dll")。