代码之家  ›  专栏  ›  技术社区  ›  Peter Meyer

IOC集装箱配置/登记

  •  1
  • Peter Meyer  · 技术社区  · 17 年前

    在日益复杂的企业服务系统中,我绝对需要使用IOC容器来分离依赖关系。我面临的问题与配置(即注册)有关。我们目前有4种不同的环境——从开发到生产以及介于两者之间。这些环境有许多不同环境的配置;但是,在所有情况下, 我现在能想到 ,组件之间的依赖性在不同的环境中没有区别,尽管我可能遗漏了一些东西,并且/或者这可能会明显改变。

    所以,最终的问题是,有没有人有过使用国际奥委会框架的类似经验?或者,谁能推荐一个框架而不是另一个框架,通过某种约定或简化的配置信息提供灵活的注册呢?我还能从一个流畅的接口中获益吗?还是我一直坚持使用XML——我想避免使用XML地狱。

    编辑: 这是一个.NET环境,我一直在关注温莎、尼杰特和自动对焦。它们现在似乎都支持这两种注册方法(fluent和xml),尽管autopac对lambda表达式的支持似乎与其他方法略有不同。有人在类似的多部署环境中使用它吗?

    4 回复  |  直到 17 年前
        1
  •  2
  •   Dale Ragan    17 年前

    我用 Ninject . 我喜欢这样一个事实,即不必使用XML来配置依赖项。我可以直接使用C代码。有 multiple ways 也要做。我知道其他库也有这个特性,但是Ninject提供了快速的实例化,它非常轻量,它有条件绑定,支持紧凑的框架,并且支持Silverlight 2.0。我还在它上面使用了一个包装器,以防将来我把它换成另一个框架。在决定一个框架时,您一定要尝试Ninject。

        2
  •  3
  •   Sean Feldman    17 年前

    如果你想提取你的容器,并且能够使用不同的容器,那就用我尝试过的方法让它注射。 here

        3
  •  1
  •   Glenn Slaven    17 年前

    我不确定它是否适合你的具体情况,你没有提到你在哪个平台上工作,但我已经取得了很大的成功 Castle Windsor's IOC framework . 依赖项在配置文件中设置(它是.NET框架)

        4
  •  1
  •   chrissie1    17 年前

    看看Ayndes犀牛公地。他使用了IOC容器的抽象。以便您可以随时切换容器。类似于容器。解析总是存在于每个容器中。

    我使用structuremap来完成脏的工作,它有一个流畅的接口和XML内容,并且它足够强大,可以满足大多数您想要做的事情。每个人都有自己的优点和缺点,所以有点抽象,这样你就可以很容易地转换(你永远不知道它们会存在多久)是很好的。剩下的我认为Spring.net、Castle Windsor、Ninject和StructureMap之间的距离已经不远了。