【发布时间】:2015-09-30 10:23:02
【问题描述】:
我正在尝试将 WebAPI 添加到现有的 ASP.Net MVC 项目中,我的问题是关于 Unity:
在单独使用 UnityMVC 之前,项目在 App_Start 文件夹中有 UnityConfig 类,代码如下:
container.RegisterType<IUnitOfWork, UnitOfWork>(new PerRequestLifetimeManager());
container.RegisterType<IDataContext, tfe_schemaContext>(new PerRequestLifetimeManager());
container.RegisterType<IPrintJobService, PrintJobService>(new PerRequestLifetimeManager());
container.RegisterType<IRepository<print_job>, Repository<print_job>>(new PerRequestLifetimeManager());
为了使用 WebAPI,我通过 NuGet 添加了 UnityWebAPI,此操作在 App_Start 文件夹中添加了 UnityMvcActivator 类。
执行项目时显示以下错误: “Unity.WebApi.UnityDependencyResolver 类型似乎没有实现 Microsoft.Practices.ServiceLocation.IServiceLocator。 参数名称:commonServiceLocator”。
我发现了使用 Bootstrapper 类但未使用 UnityConfig 类或 UnityMvcActivator 的不同代码示例。
在Bootrstrapper类中,类型的注册是这样的:
container.RegisterType<IProductServices, ProductServices>().RegisterType<UnitOfWork>(new HierarchicalLifetimeManager());
我对这一切有点迷茫,请帮助我理解并修复这个错误。
【问题讨论】:
-
可能会提供一些关于一起使用它们的指导:devtrends.co.uk/blog/…
标签: asp.net-mvc unity-container asp.net-web-api2 bootstrapper