2013-02-24 154 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。