是否可以使用XmlInterpreter向现有的WindsorContainer添加其他注册?

时间:2012-06-14 02:49:23

标签: castle-windsor

我希望能够在容器上注册某些类型,然后在XML配置文件中声明一些其他类型。不幸的是,IConfigurationInterpreter(由XmlInterpreter实现)仅在WindsorContainer()构造函数中可用,而不是在任何AddXXX()方法中。有没有其他方法可以实现这一点,而无需借助父/子容器(可能很快就会得不到支持)。

背景:我们的大型应用程序只是开始使用Castle框架来注册和解决它的一些组件。因为Castle正在改装到这个应用程序中,我们使用单例类来维护WindsorContainer()的全局实例。在单元测试中,我们需要连接此容器实例以使用自定义模拟实现(特定于测试)+一些默认模拟实现的组合。出于DLL依赖性原因,这些模拟类类型在此单元测试夹具抽象基类中不可用,因此动态注册(使用字符串)是必要的。我希望使用XML资源文件来注册默认的模拟。否则我必须使用IWindsorInstaller实现来做同样的事情,它实际上复制了XmlInterpreter所做的事情。这个API似乎正在强迫这个方向。

1 个答案:

答案 0 :(得分:2)

我认为这些会奏效......

container.Install(Castle.Windsor.Installer.Configuration.FromXml(资源))

OR

container.Install(Castle.Windsor.Installer.Configuration.FromXmlFile(路径))

它们都避免使用IConfigurationInterpreter接口。

相关问题