【发布时间】:2017-04-06 00:14:51
【问题描述】:
我第一次尝试在 WebApi 项目中设置 Unity。我从 Nuget 添加了 Unity.WebApi,我的 UnityConfig 文件如下所示。
public static void RegisterComponents()
{
var container = new UnityContainer();
// register all your components with the container here
// it is NOT necessary to register your controllers
// e.g. container.RegisterType<ITestService, TestService>();
container.RegisterType<ApplicationDbContext>(
new InjectionFactory(c => new ApplicationDbContext()));
//container.RegisterType<ApplicationSignInManager>();
container.RegisterType<ApplicationUserManager>();
GlobalConfiguration.Configuration.DependencyResolver = new UnityDependencyResolver(container);
}
但是,如果我尝试调用默认控制器之一,Account/Register,我会收到一条错误消息,提示确保我有一个无参数的构造函数。
我查看了各种文章,这些文章解释了 Unity 在 MVC 和 WebApi 中的工作方式,但据我所知,我的配置是否正确?我猜我在这里遗漏了一些简单的东西,因为我的安装非常适合 MVC 项目中的构造函数注入。
【问题讨论】:
标签: asp.net-mvc asp.net-web-api dependency-injection inversion-of-control unity-container