1

我绝对需要使用 IoC 容器来解耦日益复杂的企业服务系统中的依赖关系。我面临的问题与配置(又名注册)有关。我们目前有 4 种不同的环境——从开发到生产以及介于两者之间。这些环境有许多配置,因环境而异;然而,在我目前能想到的所有情况下,组件之间的依赖关系不会因环境而异,尽管我可能遗漏了一些东西和/或这显然会改变。

所以,最终的问题是,有没有人有使用 IoC 框架的类似经验?或者,任何人都可以推荐一个框架而不是另一个框架,它可以通过某种约定或简化的配置信息提供灵活的注册?我是否仍然能够从流畅的界面中受益,或者我是否坚持使用 XML——我想避免 XML 地狱。

编辑:这是一个 .Net 环境,我一直在研究 Windsor、Ninject 和 Autofac。它们现在似乎都支持两种注册方法(fluent 和 XML),尽管 Autofac 对 lambda 表达式的支持似乎与其他方法有点不同。有人在类似的多部署环境中使用它吗?

4

4 回答 4

3

如果您想抽象您的容器并能够使用不同的容器,请考虑以我在这里尝试的方式将其注入

于 2009-02-09T05:26:29.930 回答
2

我使用Ninject。我喜欢不必使用 Xml 来配置依赖项的事实。我可以直接使用 C# 代码。也有多种方法可以做到这一点。我知道其他库有这个特性,但是 Ninject 提供了快速实例化,它非常轻量级,它有条件绑定,支持紧凑框架,并且它支持 Silverlight,2.0。我还在它上面使用了一个包装器,以防我将来将它换成另一个框架。在决定框架时,​​您绝对应该尝试 Ninject。

于 2008-09-05T12:44:47.577 回答
1

我不确定它是否适合您的特定情况,您没有提及您正在使用的平台,但我在Castle Windsor 的 IOC 框架方面取得了巨大成功。依赖项在配置文件中设置(它是一个 .NET 框架)

于 2008-09-05T04:18:52.567 回答
1

看看 Ayendes rhino commons。他对 IoC 容器使用了抽象。这样您就可以随时切换容器。像 container.Resolve 这样的东西总是存在于每个容器中。

我使用 Structuremap 来完成繁琐的工作,它有一个流畅的界面和 XML 的东西,它对于你想做的大多数事情来说已经足够强大了。每个都有它自己的优点和缺点,所以有点抽象,所以你可以轻松地切换(你永远不知道它们会存在多久)是好的。对于其余部分,我认为 Spring.Net、Castle windsor、Ninject 和 StructureMap 不再相距甚远。

于 2008-09-05T12:02:26.227 回答