3

在参加了最近关于 IoC 的 Alt.NET 小组后,我开始思考可用的工具以及它们如何工作。 特别是使用属性和引导程序概念来映射对toStructureMap的请求。属性会自动为我抛出反射或 IL 注入正在进行的标志。有谁知道它是如何工作的(对于或其他 IoC 工具)以及在运行时或编译时相关的开销可能是多少?IThingConcreteThingStructureMap

4

4 回答 4

1

对于其他 IoC 工具包,我不能说太多,但我使用 Spring.Net 并发现在启动时会有一次性的初始性能损失。配置容器后,应用程序运行不受影响。

于 2008-09-12T00:28:20.377 回答
1

我使用CastleProject中的 Windsor,发现它在减少依赖方面非常有用。我还没有注意到性能问题,但我发现的一件事是配置可能会有点麻烦。为了在这方面提供帮助,我开始研究 Binsor,这是一个用 boo 编写的 Windsor DSL。

要注意的另一件事是,在导航代码时,您将无法转到将在运行时执行的代码。

于 2008-09-12T13:41:06.337 回答
0

我在这里构建了一个非常轻量级和基本的IOC

http://blogs.microsoft.co.il/blogs/shay/archive/2008/09/30/building-custom-object-mapper.aspx

它不是您提到的库的替代品,但如果您只需要通过提供接口来解析类型,那么它可能是一个完美的解决方案。

我不处理实例化类型(单例、瞬态、线程、池...),所有对象都将被实例化为单例,你可以这样称呼它:

IRepository _repository = ObjectFactory.BuildFactory<IRepository>();

谢伊

于 2008-10-08T20:49:13.983 回答
0

他们的主要问题是代码变得难以理解。如果过度使用 IoC ,它可能会变得很神奇。另一个问题是性能。在大多数情况下,性能损失并不明显。但是,当您开始通过 IoC 容器创建大部分对象时,它可能会突然下降到海平面以下。

于 2008-09-12T00:41:11.873 回答