Unity - 当前类型是接口,无法构造。您是否缺少类型映射?

Unity -The current type is an interface and cannot be constructed. Are you missing a type mapping?

我正在使用 Unity 依赖注入,但遇到了问题。我已经像这样注册了我的接口和 classes:

container.RegisterType<IUserService, UserService>();

其中容器是 IUnityContainer。

在我的控制器中,我有一个构造函数设置来接收 IUserService 参数,如下所示:

private readonly IUserService _service;

    public DependencyController(IUserService service)
    {
        _service = service;
    }

当指向该控制器索引的页面上的 link 被点击时,出现以下错误:

"The current type, Converge.Service.Interfaces.IUserService, is an interface and cannot be constructed. Are you missing a type mapping?"。不确定我可能会遗漏什么。任何帮助是极大的赞赏?如果您需要更多信息,请告诉我。

更新 这是 UnityConfig class

public class UnityConfig
{
    private static readonly Lazy<IUnityContainer> Container = new Lazy<IUnityContainer>(() =>
    {
        var container = new UnityContainer();

        RegisterTypes(container);

        return container;
    });

    public static IUnityContainer GetConfiguredContainer()
    {
        return Container.Value;
    }

    private static void RegisterTypes(IUnityContainer container)
    {
        new ServiceInjection()
            .Inject(container);
    }
}

public class ServiceInjection
    {
        public void Inject(IUnityContainer container)
        {
            container.RegisterType<IUserService, UserService>();
        }
    }

好的,经过一些搜索和创建其他项目后,我明白了发生了什么。只是一个愚蠢的错误。我的 ServiceInjection class 在一个单独的 dll 中。当我通过包管理器添加 Unity DI 时,它在主项目和注入 dll 中添加了一个 App_Start 文件夹。我忘记从 ServiceInjection dll 中删除 App_Start 文件夹和内容。删除该文件夹后,一切正常。

我知道这是旧的,但以防万一其他人遇到这个——我在添加服务和管理器(以及它们的接口)时遇到了同样的错误,但没有在我的中注册这些接口依赖注入配置。如果您收到此错误,请务必检查您的新接口是否确实被注入了!