0

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

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

4

1 回答 1

2

我认为这些会起作用......

container.Install(Castle.Windsor.Installer.Configuration.FromXml(resource))

或者

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

这两者都避免使用 IConfigurationInterpreter 接口。

于 2012-06-14T03:04:39.213 回答