Asp.net mvc 使用Web API 4.5配置Unity IoC

Asp.net mvc 使用Web API 4.5配置Unity IoC,asp.net-mvc,asp.net-web-api,unity-container,Asp.net Mvc,Asp.net Web Api,Unity Container,我正在尝试在ASP.NET Web Api项目中配置Unity IoC。我已安装Unity.WebAPI包: PM>安装程序包Unity.MVC4 并将下一个代码添加到引导程序类的初始化方法: DependencyResolver.SetResolver(new UnityDependencyResolver(container)); 此外,我已在容器中注册了我的存储库: container.RegisterType<IProductRepository, ProductReposito

我正在尝试在ASP.NET Web Api项目中配置Unity IoC。我已安装Unity.WebAPI包:

PM>安装程序包Unity.MVC4

并将下一个代码添加到
引导程序
类的
初始化
方法:

DependencyResolver.SetResolver(new UnityDependencyResolver(container));
此外,我已在容器中注册了我的存储库:

container.RegisterType<IProductRepository, ProductRepository>();

可能您正在关注这篇文章。如果没有,它可以帮助你

关于此错误,请尝试向控制器添加一个无参数的构造函数:

i、 e


可能您正在关注这篇文章。如果没有,它可以帮助你

关于此错误,请尝试向控制器添加一个无参数的构造函数:

i、 e


到目前为止,你所做的看起来不错,但我认为你只漏掉了这一行

Bootstrapper.Initialise();
这应该包含在应用程序的启动代码中,例如,对于MVC应用程序,只需将其放在这个方法的末尾

protected void Application_Start()

到目前为止,你所做的看起来不错,但我认为你只漏掉了这一行

Bootstrapper.Initialise();
这应该包含在应用程序的启动代码中,例如,对于MVC应用程序,只需将其放在这个方法的末尾

protected void Application_Start()


我认为您应该添加
valuescoontroller
的代码,而且错误似乎与此相关,该控制器中有哪些方法,您(尝试)调用了哪种方法?哎呀!对不起,刚刚更新。等一下!首先你说我安装了Unity.WebAPI,然后你安装了Unity.MVC4,现在是哪一个,你在建什么?MVC应用程序还是Web API应用程序?我正在开发Web API项目,但安装的软件包是Unity.MVC4。实际上,我曾尝试安装Unity.WebAPI,但安装后发现编译错误:“MVCAPApplication1.Areas.HelpPage.XmlDocumentationProvider”未实现接口成员“System.Web.Http.Description.IDocumentationProvider.GetResponseDocumentation(System.Web.Http.Controllers.HttpActionDescriptor)”“…\MVCAPApplication1\Areas\HelpPage\XmlDocumentationProvider.cs因此,我不知道如何解决它…您是否尝试了我在回答中建议的方法?我认为您应该添加
ValuesController
的代码,而且错误似乎与此相关,该控制器中有哪些方法,你(试着)给哪一个打了电话?哎呀!对不起,刚刚更新。等一下!首先你说我安装了Unity.WebAPI,然后你安装了Unity.MVC4,现在是哪一个,你在建什么?MVC应用程序还是Web API应用程序?我正在开发Web API项目,但安装的软件包是Unity.MVC4。实际上,我曾尝试安装Unity.WebAPI,但安装后发现编译错误:“MVCAPApplication1.Areas.HelpPage.XmlDocumentationProvider”未实现接口成员“System.Web.Http.Description.IDocumentationProvider.GetResponseDocumentation(System.Web.Http.Controllers.HttpActionDescriptor)”“…\MVCAPApplication1\Areas\HelpPage\XmlDocumentationProvider.cs因此,我不知道如何解决它…您是否尝试了我在回答中建议的方法?我不需要无参数构造函数,因为我必须将存储库注入控制器中…很抱歉,您是正确的。我刚才提到了无参数构造函数,因为它看起来像是在代码中的某个地方可以使用控制器的默认构造函数,这是一个没有参数的构造函数。@Emendezrias只是想对此做一些澄清。对于默认行为,您所描述的是正确的。然而,Unity的IoC应该覆盖这种行为,因为Unity总是试图用最大数量的参数匹配构造函数。因此,在其他任何情况下,您都是对的,但当涉及到IoC时,您必须在头脑中“切换”默认行为应该是不同的=>即配置错误。我不需要无参数构造函数,因为我必须将存储库注入控制器中……很抱歉,您是正确的。我刚才提到了无参数构造函数,因为它看起来像是在代码中的某个地方可以使用控制器的默认构造函数,这是一个没有参数的构造函数。@Emendezrias只是想对此做一些澄清。对于默认行为,您所描述的是正确的。然而,Unity的IoC应该覆盖这种行为,因为Unity总是试图用最大数量的参数匹配构造函数。因此,在其他任何情况下,你都是对的,但当涉及到IoC时,你必须在头脑中“切换”默认行为应该是不同的=>即配置错误。是的!谢谢,这很有趣:)@alex.mironov很高兴能帮上忙;)是 啊谢谢,这很有趣:)@alex.mironov很高兴能帮上忙;)