2008-11-27 123 views
9

我能找到的例子使用兩層體系結構,其中控制器直接使用數據訪問層中的存儲庫類。見herehere如何在3層web應用程序(ASP.NET MVC)中使用Autofac?

如果您有使用這些組件的服務或業務邏輯層,那麼您將從數據訪問層註冊組件?理想情況下,數據訪問層不應該從用戶界面層引用,對吧?所以Application_Start不適合做這件事。

什麼是更好的方法?

謝謝!

+0

對不起,我沒有回答你的問題,但你提供的這個MVC Commerce應用程序的鏈接是非常豐富和有見地的,所以謝謝。 :) – Franck 2008-11-27 17:17:25

回答

7

有些事情必須知道您想要使用哪種實現。通常會有3種方式來實現:

  1. 在編譯的時候是什麼Autofac使用
  2. 從預定義的配置文件運行時,其溫莎城堡可以在運行時做
  3. 與dyanamic configuartion

隨着Autofac你有幾個選擇

  1. 在Application_Start中把所有東西連接在一起
  2. 將責任交給執行factory pattern的另一個組件,並註冊所需的組件。

對於#2我會實現類似於IContainer接口的東西,以便您的IoC框架與您的系統鬆散耦合。然後讓你的數據訪問實現使用該接口來註冊所需的組件。

+0

好的,所以在第一種情況下(Application_Start中的所有內容)是Web應用程序現在必須直接引用數據訪問層組件的問題? – 2008-11-28 09:29:02

相關問題