2

我想开始在现有 WPF 应用程序中使用 IoC 容器。
我需要良好的性能,但根据我的阅读,大多数容器的性能确实不是问题。
我最需要的是一个非常容易使用的容器,它可以很容易地集成到我的应用程序中。我阅读了有关 StructureMap 的建议(语法看起来很棒),但在他们的网站上,过去 3 年似乎没有更新,所以我对此有些怀疑。

请提供基本使用代码示例(初始化+使用)的建议。

编辑
我不是在寻找一个完整的框架。我只需要 IoC 容器能力,还有很多其他的选择。我在这里找到的最后一个相关讨论已经有几年了,我想刷新一下。

4

3 回答 3

2

Structuremap 没有

我们将它用于我们的新绿地项目,当 v3 发布时,我们可能会迁移到它。ATM 使用 2.6.4。

于 2013-02-25T03:23:11.600 回答
2

答案实际上取决于个人喜好和用例的详细信息。无论如何,在使用 Unity、MEF(我知道,不是真正的 IoC 容器)并编写了一些单独的解决方案之后,我现在正在使用Autofac并且非常喜欢它。使用时间越长,越容易深入挖掘并不断揭示其优势。与其他框架相比,它提供了流畅的界面并且速度很快(顺便说一句:容器的性能可能是一个非常重要的问题,具体取决于您想要做什么)。有关 Autofac 的用法和示例,请参见上面的链接。

为什么我喜欢它:

  • 容易进入
  • 流畅的界面
  • 支持开放泛型
  • 支持装配扫描
  • 与 MEF 和其他框架的互操作性
  • 够快(IoC容器的性能对比

不过,这是个人选择,周围还有其他好的解决方案,对于您的特殊情况甚至可能更好。

而且,或多或少偏离主题,我可以推荐这篇文章,尤其是后半部分,作为一般考虑。这对我帮助很大。所以,以防万一:

马丁·福勒的文章

于 2013-02-25T07:46:34.363 回答
1

您的问题是购物清单类型的问题,因此不会长时间打开。

有许多 IoC 类型的框架,其中一些需要声明性或编程操作来完成它们的工作,其中一些使用代码语义来连接。

我建议你从Unity 1开始,直到你开始熟悉事物,然后当你能体会到它们之间的差异时,再寻找一些更奇特的框架。


1这是一篇不错的近期介绍文章:Visual Studio 杂志:使用 WPF、Prism 和 Unity 创建模块化

于 2013-02-24T07:06:05.367 回答