2010-12-14 63 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)

感謝