2012-07-15 69 views
0

我正在嘗試起牀並使用Autofac,但無法找出問題。假設我有一個帶有幾個項目的[winforms]解決方案:MyProject.GUI,MyProject.Model,MyProject.DataAccess。哪裏是推薦的地方把所有builder.Register代碼?假設我沒有使用XML(這可能是一個錯誤,如果是的話請糾正我),它需要知道所有的程序集,以便引用每個程序集中的服務和組件。我應該把它全部放在啓動項目MyPRoject.GUI中嗎?這可行,但現在這個項目將「瞭解」所有其他項目。也許這並不像我初看起來那麼糟糕。也許我在想這個。使用IoC容器時,您在哪裏註冊組件?

我會很感激任何想法。謝謝。

回答

1

您可以使用Module功能將模塊放置在您的每個項目中,每個項目都可以在該項目中註冊相關性。然後你可以在啓動項目中註冊這些模塊。

啓動項目將引用所有其他項目,但它不需要知道這些項目的內部。

+0

所以我會在我的啓動中嘗試類似以下內容? builder.RegisterModule(new MyProject.ModelModule);? 這很有道理。我想我緊緊抱住的想法是,我的創業項目不應該太瞭解其他項目,或者他們甚至存在。感謝您如此快速地回到我身邊,度過一個愉快的週末。 – RobC 2012-07-15 03:31:52

+1

@RobC是的。否則你可能不得不動態加載程序集或使用像[MEF](http://mef.codeplex.com/) – Eranga 2012-07-15 03:40:22

+0

這樣的框架顏色我受過教育。再次感謝。 – RobC 2012-07-15 03:59:59