我刚刚开始使用 Windsor,所以请温柔点:) 我有一个场景,我希望能够覆盖/替换放置在 Windsor 容器内的组件。继续阅读...
在我的产品代码中,我希望能够注册一个实现基类的组件,并使用容器来解析实现者。到目前为止,使用
container.Register(Component.For<LoggerBase>().ImplementedBy<DebugLogger>());
and
container.Resolve<LoggerBase>();
在我的测试中,我想添加一个存根/模拟实现来覆盖“DebugLogger”实现,以便当我的产品代码调用时container.Resolve<LoggerBase>();
它得到了重写的实现。
欢迎任何指点!
您不应该沿着这条路走下去,而应该针对不同的场景使用不同的容器实例。每个实例可以进行不同的配置。这就是 DI 容器的全部意义。
不过,一般来说DI 容器不应用于单元测试 https://stackoverflow.com/questions/1465849/using-ioc-for-unittesting/1465896#1465896.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)