2010-12-14 62 views
2

我在解决如何在我的n层ASP .net MVC应用程序中配置Unity IoC容器时遇到了一些小问题。如何在n层ASP .net MVC应用程序中配置Unity

我有我的解决方案有3个项目:1。 MVC(用作视图):有referene到业务逻辑层只 2.业务逻辑层:有参考库项目只 3.程序存储库:不要有参考上述任何一个项目

请注意我的参考工作的方式,我这样做了,所以我将能够用较少的难度替换使用WCF的层之间的通信。

我在我的MVC应用程序配置了统一的容器做这样的事情(Global.asax中):

container.RegisterType(); //为MyService是我的业务逻辑层

的为MyService类使用我的仓库在其构造意味着当创建的那些为MyService类之一的MyRepository还需要:

公共则将MyService(IRepository库):基地(repository) {}

正如你所看到的,我还没有在我的容器中配置IRepository。

我不想在我的Global.asax中这样做,因为我不想在MVC(视图)层添加任何Repository引用。

哪里是配置这个最好的地方?我有点困惑在这里......

在此先感谢。

回答

1

让我告诉你我做了什么至今:

我在服务和库后来创建了一个静态类,我在我的视图层创建统一的容器(MVC )并将它传递给这些静态类,它们将它们所需的内容填充到容器中,再加上下一层,例如服务层也会调用我的存储库中的静态类。

这种方式我配置容器与我需要的一切。

问题是:这是一件好事吗?

2
+0

利, MVCUnity看起来不错,但我不太明白这将如何解决我的问题?我的MVC应用程序中没有任何对Repository的汇编引用。 – Raha 2010-12-14 18:49:05

0

如果我们使用的是Unity。我们可以在中间层实现Unity容器的扩展,并在下面的Presentation层注册。

  //Data Layer dependency mapping as extension eg : IUnitOfWork 
      container.AddNewExtension<DependencyInjectionExtension>(); 

更多详情请关注文章。

N-tier with DI (Unity)

感谢