我想在给定的 Windsor 容器中重新定义一个(默认)实现。这是 OverWrite 的用途吗?不过没用。
container.Register(
Component.For<IServiceOperationAuthorization>()
.OverWrite()
.Instance(_authorization)
);
还有其他想法吗?
干杯,
拉斯
最佳答案
您可以非常简单地在需要覆盖默认实现的地方执行此操作。这是我们集成测试中的一个示例。这两种实现现在都已注册,但您的代码将使用默认的一种,即您刚刚注册的一种。像炸弹一样工作,对应用程序的其余部分没有任何影响:
var sendMailStub = MockRepository.GenerateStub<ISendMail>();
_container.Register(
Component
.For<ISendMail>()
.Instance(sendMailStub)
.IsDefault()
);
关于inversion-of-control - 如何用城堡温莎覆盖组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/658344/