我有一个ASP.MVC 4站点,它也有一个Web API 2控制器。我正在使用Unity.MVC进行DI。 当我从javascript调用API时,它说它无法创建控件的实例。如果我创建一个默认的ctor,它会创建实例,但当然依赖项为null,但至少我知道该部分正在工作。
这是我的api ctor:
Activator.CreateInstance(type, (IOperationContext)null, (Dictionary<string, object>)null);
这里面是UnityConfig.cs(当我从NuGet获取并且我填写了依赖项时,它是为我自动生成的)。当我启动应用程序时会调用它。
CreateInstance(Type type, params object[] args)
我错过了什么?
答案 0 :(得分:3)
WebAPI控制器具有单独的Unity注册。由于您已经在使用 Unity.MVC 包,因此可以添加Unity.AspNet.WebApi引导程序。
由于配置会自动替换,我会在导入第二个包之前保存UnityConfig.cs
的内容,然后手动组合这两个包。但真正的区别在于单独的 Unity * Activator.cs 文件。