Asp.net mvc 如何在n层ASP.NETMVC应用程序中配置Unity

Asp.net mvc 如何在n层ASP.NETMVC应用程序中配置Unity,asp.net-mvc,ioc-container,Asp.net Mvc,Ioc Container,我在弄清楚如何在我的n层ASP.NETMVC应用程序中配置UnityIOC容器时遇到了一个小问题 我的解决方案中有3个项目: 1.MVC(用作视图):仅引用业务逻辑层 2.业务逻辑层:仅引用存储库项目 3.回复:未提及上述任何项目 请注意我的参考工作方式,我已经这样做了,因此我将能够使用WCF替换我的层之间的通信,难度更小 我在MVC应用程序中配置了一个Unity容器,如下所示(Global.asax): container.RegisterType()//MyService位于我的业务逻辑层中

我在弄清楚如何在我的n层ASP.NETMVC应用程序中配置UnityIOC容器时遇到了一个小问题

我的解决方案中有3个项目: 1.MVC(用作视图):仅引用业务逻辑层 2.业务逻辑层:仅引用存储库项目 3.回复:未提及上述任何项目

请注意我的参考工作方式,我已经这样做了,因此我将能够使用WCF替换我的层之间的通信,难度更小

我在MVC应用程序中配置了一个Unity容器,如下所示(Global.asax):

container.RegisterType()//MyService位于我的业务逻辑层中

MyService类在其构造函数中使用my repository,这意味着当创建其中一个MyService类时,还需要MyRepository:

公共MyService(IRepository存储库):基础(存储库) {}

正如您所看到的,我仍然没有在容器中配置IRepository

我不想在我的Global.asax中这样做,因为我不想将任何存储库引用添加到MVC(视图)层

在哪里配置此项的最佳位置?我有点困惑


提前谢谢。

你试过了吗:

让我告诉你到目前为止我做了什么:

稍后,我在我的服务和存储库中创建了一个静态类,我在我的视图层(MVC)中创建了Unity容器,并将其传递给这些静态类,它们用它们需要的内容以及下一层填充容器,例如,服务层也在我的存储库中调用静态类

通过这种方式,我可以使用所需的一切配置容器


问题是:如果我们使用统一,这是一件好事吗。我们可以在中间层实现统一容器的扩展,并在下面的表示层中登记。
          //Data Layer dependency mapping as extension eg : IUnitOfWork
            container.AddNewExtension<DependencyInjectionExtension>();
//数据层依赖关系映射作为扩展,例如:IUnitOfWork
container.AddNewExtension();
更多详情请参考文章


谢谢

Lee,MVCUnity看起来不错,但我不太明白这将如何解决我的问题?我的MVC应用程序中没有对存储库的任何程序集引用。