2013-02-06 52 views
1

在一個Web應用程序中,它合理地使用IoC/DI來獲取數據庫會話,DAO等等,因爲它不是你稱之爲「事件」的是注入器。你只需要在你的事件函數中聲明適當的參數。Winforms和IoC/DI

但是在winforms應用程序中,只有你自己和你調用函數。沒有「查詢字符串處理程序」給你。


聽起來真的不可能改變從

private void button1_Click(object sender, EventArgs e); 

private void button1_Click(object sender, EventArgs e, DbSession dbSession); 

和 「處理程序」 自動爲你注入的東西。


那麼,事情是:在的WinForms,我只是需要實現一個包含所有我的「UTIL」的情況下,例如SessionFactory和等一個單身或靜態類? 因此,對於winforms注入沒有設計模式或最佳做法?

回答

1

有幾個依賴注入

  • 構造器注入不同的口味 - 通過構造函數在對象創建附加的依賴
  • Setter注入 - 通過setter屬性
  • 接口注入附加的依賴 - 這是一個奇怪的鴨子(由特定的DI工具驅動使用)
  • 服務定位器 - 使用知名的知道如何檢索和創建依賴關係的類。不是技術上的DI,但這是大多數DI/IoC容器工具的真正用處。

    依賴注入通過在容器範圍外創建對象來解決問題(緊密耦合的一點點)。

    退房 detailed explanation with examples

0

我不認爲你想將業務邏輯的一般事件處理程序內的按鈕點擊。你或者想要調用一個不同的對象,它將從事件處理器內部處理這個對象,或者讓該對象自己訂閱按鈕單擊事件。

+0

那麼,我將如何得到我的「不同的對象」的實例?在按鈕點擊事件上實例化?什麼是依賴關係?這樣我得到相同的緊耦合問題。 – Stew