2013-02-24 50 views
1

我想在現有的WPF應用程序中開始使用IoC容器。
我需要良好的表現,但從我讀到的情況來看,大多數容器的性能確實不是問題。
我最需要的是一個非常容易使用的容器,它可以很容易地集成到我的應用程序中。我閱讀關於StructureMap的建議(語法看起來很棒),但是在他們的網站中,似乎過去3年沒有更新,所以我對此有些懷疑。WPF應用程序的IoC容器

請提供基本使用代碼示例(初始化+使用)的建議。

編輯
我不是在尋找一個完整的框架。我只需要IoC容器的能力,所以還有很多其他的選擇。我在這裏找到的最後一個相關討論是幾年前的,我想刷新它。

+1

簡單而快速?嘗試[簡單注射器](http://simpleinjector.codeplex.com)(無恥插頭)。 – Steven 2013-02-24 12:24:12

+0

我讀了關於簡單的注射器,並看到它在'SilverLight'上運行。在WPF應用程序中會有問題嗎? – Noich 2013-02-24 13:22:41

回答

1

答案真的取決於個人喜好和用例的細節。無論如何,在使用Unity,MEF(我知道,不是一個真正的IoC容器)並編寫一些個人解決方案後,我現在使用Autofac並且喜歡它。在您使用它的時間越長,挖掘並持續揭示它的優勢是非常容易的。它提供了一個流暢的界面,並且與其他框架相比速度很快(順便說一句:根據你想要做什麼,容器的性能可能是一個非常重要的問題)。有關Autofac的用法和樣本,請參閱上面的鏈接。

爲什麼我喜歡它:

不過,這是個人選擇,還有其他很好的解決方案,對於您的特殊情況甚至會更好。

而且,或多或少的題外話,我可以推薦這篇文章,特別是下半年的一般考慮。這對我幫助很大。所以,以防萬一:

Article by Martin Fowler

+0

感謝您的有用答案。我讀了福勒的文章。在我們的代碼中使用容器的主要阻力是因爲它是「黑魔法」。我想表明它很容易使用和理解。 – Noich 2013-02-27 12:14:28

+1

@Noich:這是黑魔法!所以成爲一個魔術師;) – Marc 2013-03-07 08:49:07

+0

黑魔法是皺眉。 :/ 雖然我很想成爲魔術師。 – Noich 2013-03-07 08:57:34

1

你的問題是一個購物清單類型的問題,所以它不會保持很長時間。

有很多IoC類型的框架,其中一些需要聲明或編程操作來完成他們的工作,其中一些使用代碼語義來進行連接。

我建議你開始與Unity ,直到你進入事物的搖擺,然後看分支到一些比較exotic frameworks時,你可以欣賞它們之間的差異。


這是一個很好的最近介紹文章:Visual Studio magazine: Creating Modularity with WPF, Prism and Unity

2

Structuremap AINT dead

我們將它用於我們新的綠色領域項目,當v3不在時我們可以遷移到它。 ATM使用2.6.4。