关于依赖项注入:IoC容器配置/注册

关于依赖项注入:IoC容器配置/注册

IoC Container Configuration/Registration

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

因此,最终的问题是,有人使用IoC框架会有类似的经历吗?或者,有人可以通过某种约定或简化的配置信息来推荐一个可以灵活注册的框架吗?我是否仍然可以从流畅的界面中受益,还是坚持使用XML?我想避免使用XML-hell。

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


如果您想抽象化容器并能够使用其他容器,请考虑以我在此处尝试的方式将其注入


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


看看Ayendes犀牛公地。他在IoC容器上使用了抽象。这样您就可以随时切换容器。像container.Resolve之类的东西总是存在于每个容器中。

我使用Structuremap进行肮脏的工作,它具有流畅的界面和XML内容,并且对于大多数您想做的事情来说功能强大。每个人都有自己的优缺点,因此有一点抽象,以便您可以轻松切换(您永远不知道它们将要存在多长时间)是好的。对于其余的我,我认为Spring.Net,Castle Windsor,Ninject和StructureMap不再相距遥远。


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


推荐阅读

    linux的配置网络命令?

    linux的配置网络命令?,地址,系统,网络,代码,服务,管理,密码,信息,基础,命令,l

    linux内核配置的命令?

    linux内核配置的命令?,系统,工作,管理,地址,时间,命令,信息,设备,目录,内核,

    linux挂载命令配置?

    linux挂载命令配置?,系统,网络,设备,服务,位置,电脑,名字,密码,目录,命令,Lin

    linux注册快捷命令?

    linux注册快捷命令?,名称,第一,发行,软件,网上,名字,命令,快捷键,程序,桌面,l

    linux防火墙配置命令?

    linux防火墙配置命令?,系统,工具,服务,状态,防火墙,通用,密码,信息,网络,管

    linux磁盘配置命令行?

    linux磁盘配置命令行?,信息,系统,管理,状态,环境,电脑,名称,数据,名字,情况,l

    linux配置寄存器命令?

    linux配置寄存器命令?,地址,系统,信息,工作,状态,设备,第一,数据,标的,命令,l

    linux配置vim命令?

    linux配置vim命令?,时间,系统,标的,状态,软件,电脑,名单,图片,数据,密码,LINU

    linux命令中配置ip?

    linux命令中配置ip?,地址,系统,代码,信息,网络,密码,设备,命令,网关,终端,如

    linux命令查系统配置?

    linux命令查系统配置?,信息,系统,网络,技术指标,状态,命令,电脑,地址,服务,

    linux下查询配置命令?

    linux下查询配置命令?,信息,网络,系统,状态,服务,管理,技术指标,命令,防火

    linux让配置生效命令?

    linux让配置生效命令?,地址,网络,服务,状态,信息,工具,名称,系统,新增,地方,L

    linux系统配置命令行?

    linux系统配置命令行?,系统,网络,密码,代码,位置,电脑,市场,地方,一致,工具,L

    linux怎么配置命令?

    linux怎么配置命令?,系统,软件,服务,工作,灵活,技术,基础,标准,在线,信息,Lin

    linux防火墙命令配置?

    linux防火墙命令配置?,系统,状态,工具,标准,密码,服务,防火墙,管理,网络,情

    linux基础命令配置?

    linux基础命令配置?,地址,系统,网络,基础,工作,工具,初级,信息,简介,设备,LIN

    linux配置免密命令?

    linux配置免密命令?,密码,服务,名称,认证,证书,代码,时间,管理,环境,系统,Lin

    linux硬件配置命令?

    linux硬件配置命令?,信息,系统,电脑,中科,工具,数据,设备,命令,方法,详细信

    linux看网卡配置命令?

    linux看网卡配置命令?,系统,信息,电脑,技术指标,网络,命令,网卡,服务,工具,