2

我有以下組分的多層控制檯應用程序: - 數據訪問層 - 域層 - 使用在數據訪問層 定義的數據存儲庫中的類 - 發動機 - 這包含條目指向應用程序並使用域圖層類,編排操作Ninject多層控制檯應用程序

數據訪問圖層類和域圖層類實現一組接口。你如何建議我做DI?我是否需要在我的域類和我的引擎類中引用Ninject,還有其他方法可以在單個位置執行綁定嗎?什麼是最好的模式來做到這一點。

我剛開始使用DI和Ninject,所以任何幫助,例子和解釋都會非常有幫助。

+0

不要忘了購買manning.com/seemann,你可以自己回答這個問題(但它不直接覆蓋Ninject) – 2013-04-09 21:17:02

回答

3

我會給你寫一個簡單的例子,並將其添加到我的github上。應該在30分鐘左右。將張貼的鏈接在這裏a.s.a.p

編輯:在這裏,你已經有了範例項目:ConsoleApplicationNinject

編輯:而這正是you'll做結合。 https://github.com/codeplanner/ConsoleAppNinject/blob/master/ConsoleAppNinject/Ninject/ServiceModule.cs

+0

好的,但請注意,激活塊已棄用http://www.planetgeek.ch/2012/04/23/future-of-activation-blocks /你可能會發現http://stackoverflow.com/a/15836383/11635有趣 – 2013-04-09 15:34:19

+0

Ruben:不知道。 Ninject的文檔很差(或隱藏的很好)。無論如何,它的工作原理,我們與websockets使用它,因爲沒有要求應付。很高興有你的鏈接,供將來閱讀。 – Uffe 2013-04-09 15:50:29

+0

激活塊的實現只是一個想法的浮動,NamedScope的東西(特別是CreateNamedScope)是新的。我將很快在'Ninject.Extensions.NamedScope'中爲PR自定義請求範圍內的東西(和CreateNamedScope本身)做PR和/或文檔 - 我現在在生產中粘貼它。另外https://github.com/ninject/ninject/wiki/Object-Scopes最近更新並擴展了很多關鍵信息 – 2013-04-09 20:54:42

2

我需要在我的域類和我 引擎類既Ninject參考,有沒有其他辦法可以做到在一個 地方的約束力?什麼是最好的模式來做到這一點。

儘可能接近應用程序的入口點。

這個地方被稱爲Composition Root