gpt4 book ai didi

c# - 如何覆盖在 CaSTLe Windsor 中注册的组件?

转载 作者:行者123 更新时间:2023-11-30 15:49:20 25 4
gpt4 key购买 nike

我刚开始使用 Windsor,所以请保持温和 :) 我有一个场景,我希望能够覆盖/替换放置在 windsor 容器内的组件。继续阅读...

在我的产品代码中,我希望能够注册一个实现基类的组件,并使用容器来解析实现者。到目前为止,使用

container.Register(Component.For<LoggerBase>().ImplementedBy<DebugLogger>());

container.Resolve<LoggerBase>();

在我的测试中,我想添加一个 stub /模拟实现来覆盖“DebugLogger”实现,这样当我的产品代码调用 container.Resolve<LoggerBase>(); 时它获得了重写的实现。

欢迎任何指点!

最佳答案

与其追逐那条路,不如针对不同的场景使用不同的容器实例。每个实例都可以不同地配置。这就是 DI 容器的全部意义。

但是,一般来说DI Containers should not be used for unit testing .

关于c# - 如何覆盖在 CaSTLe Windsor 中注册的组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1687574/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com