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

标签 c# castle-windsor ioc-container

我刚开始使用 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/

相关文章:

.net - 哪个 IOC 容器以中等信任度运行

c# - 是否可以根据命名约定在 CaSTLe Windsor 中自动注册?

c# - 具有构造函数的 ServiceStack 服务类

c# - 将节点字符串解析为 XMLNodeList

c# - Windows XP/Windows 7 和 Windows Servers 登录页面

C# WPF 工具包 : How can I make a cell from a datagrid be editable?

c# - VS 2010 单元测试和无符号类型

c# - ASP.NET MVC 4 RC 与温莎城堡

c# - 如何注册类型不同的参数构造函数[Unity IoC]

c# - Caliburn Micro,动态加载的 View / View 模型