IoC 容器配置/注册
-
09-06-2019 - |
题
我绝对需要使用 IoC 容器来解耦日益复杂的企业服务系统中的依赖关系。我面临的问题是与配置相关的问题(又名:登记)。我们目前有 4 种不同的环境——开发到生产以及介于两者之间的环境。这些环境有许多配置,这些配置因环境而异。然而,在所有情况下 我目前能想到, ,组件之间的依赖关系因环境而异,尽管我可能错过了一些东西和/或这可能会明显改变。
所以,最终的问题是,是否有人有类似的使用 IoC 框架的经验?或者,有人可以推荐一个框架而不是另一个框架,通过某种约定或简化的配置信息来提供灵活的注册吗?我是否仍然能够从流畅的界面中受益,或者我是否仍坚持使用 XML —— 我想避免 XML 的地狱。
编辑: 这是一个 .Net 环境,我一直在关注 Windsor、Ninject 和 Autofac。它们现在似乎都支持两种注册方法(Fluent 和 XML),尽管 Autofac 对 lambda 表达式的支持似乎与其他方法略有不同。有人在类似的多部署环境中使用它吗?
其他提示
如果您想抽象您的容器,并能够使用不同的容器,请考虑以我尝试的方式将其注入 这里
我不确定它是否适合您的具体情况,您没有提到您正在使用的平台,但我已经取得了巨大的成功 温莎城堡的IOC框架. 。依赖项在配置文件中设置(它是一个 .NET 框架)
看看艾延德犀牛的公共区域。他使用了 IoC 容器的抽象。这样您就可以随时切换容器。像container.Resolve这样的东西总是存在于每个容器中。
我使用 Structuremap 来做一些脏活,它有一个流畅的界面和 XML 东西,而且它对于你想做的大多数事情来说足够强大。每个都有自己的优点和缺点,所以一点抽象,这样你就可以轻松切换(你永远不知道它们会存在多久)是好的。对于其余的,我认为 Spring.Net、Castle Windsor、Ninject 和 StructureMap 已经不再那么遥远了。